@trismegisto/spine 3.3.3 → 3.3.4

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 (47) hide show
  1. package/README.md +15 -2
  2. package/fesm2022/trismegisto-spine-audit.mjs +6 -6
  3. package/fesm2022/trismegisto-spine-audit.mjs.map +1 -1
  4. package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs} +8 -8
  5. package/fesm2022/{trismegisto-spine-auto-service-auto-service-client.component-BAfeLyTB.mjs.map → trismegisto-spine-auto-service-auto-service-client.component-kAXaCM5W.mjs.map} +1 -1
  6. package/fesm2022/{trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs → trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs} +251 -85
  7. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-DE2QIGRH.mjs.map +1 -0
  8. package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs} +2 -2
  9. package/fesm2022/{trismegisto-spine-auto-service-auto-service-news-page.component-CBemH4hr.mjs.map → trismegisto-spine-auto-service-auto-service-news-page.component-BW7BJ0oD.mjs.map} +1 -1
  10. package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs} +2 -2
  11. package/fesm2022/{trismegisto-spine-auto-service-auto-service-ratings-page.component-C_THGTkw.mjs.map → trismegisto-spine-auto-service-auto-service-ratings-page.component-CHPU-QLJ.mjs.map} +1 -1
  12. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs +3733 -0
  13. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-CkiCTmXD.mjs.map +1 -0
  14. package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs} +7 -7
  15. package/fesm2022/{trismegisto-spine-auto-service-auto-service.component-QsIQ61w2.mjs.map → trismegisto-spine-auto-service-auto-service.component-D58Ht9PH.mjs.map} +1 -1
  16. package/fesm2022/{trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs → trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs} +12 -3
  17. package/fesm2022/trismegisto-spine-auto-service-groups.technical-CB1D3ANC.mjs.map +1 -0
  18. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs} +7 -2
  19. package/fesm2022/{trismegisto-spine-auto-service-groups.usage-OvWjNeeT.mjs.map → trismegisto-spine-auto-service-groups.usage-De2MhlE7.mjs.map} +1 -1
  20. package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs} +14 -1
  21. package/fesm2022/{trismegisto-spine-auto-service-suggestions.technical-BtUK6sKD.mjs.map → trismegisto-spine-auto-service-suggestions.technical-CGBBzAR8.mjs.map} +1 -1
  22. package/fesm2022/{trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs → trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs} +26 -3
  23. package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-DnAJS-Z0.mjs.map +1 -0
  24. package/fesm2022/trismegisto-spine-auto-service.mjs +24 -11
  25. package/fesm2022/trismegisto-spine-auto-service.mjs.map +1 -1
  26. package/fesm2022/{trismegisto-spine-layout-suggestions-page.component-xI2gDMok.mjs → trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs} +3 -3
  27. package/fesm2022/{trismegisto-spine-layout-suggestions-page.component-xI2gDMok.mjs.map → trismegisto-spine-layout-suggestions-page.component-CEKMqera.mjs.map} +1 -1
  28. package/fesm2022/{trismegisto-spine-layout-trismegisto-spine-layout-Clphrsgc.mjs → trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs} +428 -93
  29. package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-DiAfxIGP.mjs.map +1 -0
  30. package/fesm2022/trismegisto-spine-layout.mjs +1 -1
  31. package/fesm2022/trismegisto-spine-side-panel.mjs +1 -1
  32. package/fesm2022/trismegisto-spine-side-panel.mjs.map +1 -1
  33. package/fesm2022/trismegisto-spine.mjs +528 -10
  34. package/fesm2022/trismegisto-spine.mjs.map +1 -1
  35. package/package.json +6 -6
  36. package/types/trismegisto-spine-auto-service.d.ts +20 -4
  37. package/types/trismegisto-spine-auto-service.d.ts.map +1 -1
  38. package/types/trismegisto-spine-layout.d.ts +327 -63
  39. package/types/trismegisto-spine-layout.d.ts.map +1 -1
  40. package/types/trismegisto-spine.d.ts +221 -3
  41. package/types/trismegisto-spine.d.ts.map +1 -1
  42. package/fesm2022/trismegisto-spine-auto-service-auto-service-groups.component-BYjIQ9ID.mjs.map +0 -1
  43. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-mMjE3JOL.mjs +0 -2179
  44. package/fesm2022/trismegisto-spine-auto-service-auto-service-suggestions-page.component-mMjE3JOL.mjs.map +0 -1
  45. package/fesm2022/trismegisto-spine-auto-service-groups.technical-_jQrg1Qh.mjs.map +0 -1
  46. package/fesm2022/trismegisto-spine-auto-service-suggestions.usage-BwO9Hjsx.mjs.map +0 -1
  47. package/fesm2022/trismegisto-spine-layout-trismegisto-spine-layout-Clphrsgc.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"trismegisto-spine.mjs","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/builtin-pages.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/icons.generated.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts","../../../projects/ui/src/trismegisto-spine.ts"],"sourcesContent":["export interface Route {\n route_display_name?: string | null;\n route_icon?: string | null;\n route_name?: string | null;\n route_order?: number | null;\n route_path?: string | null;\n route_redirect?: string | null;\n route_redirect_to?: string | null;\n route_type?: string | null;\n /** A ROTA do nó (`web.routes.route_id`): nome/ícone/path. Reaproveitável em vários routers. */\n routed_id: string;\n routes?: Route[] | null;\n /**\n * Identidade da TELA: o router do client (`web.router.router_id`, a posição da tela na\n * navegação). Só no nó 'page' -- nó de grupo (navigation/menu/...) é compartilhado por vários\n * routers e não tem um próprio. É por ele que o spine acha o componente (`COMPONENT_ROUTES`),\n * o documento e a descrição.\n */\n router_id?: string | null;\n /** Texto curto da tela (`web.router.description`), exibido na barra da página abaixo do título. */\n description?: string | null;\n // Presente só no nó 'page' -- proveniência de template (web.router.source_template_router_id),\n // estável entre todos os clients vinculados ao mesmo template, ao contrário de router_id (que é\n // o router CLONADO, específico de cada client). Usado como fallback de resolução de componente\n // quando nenhum app registrou esse router_id diretamente, ver ComponentDistributorService.\n source_template_router_id?: string | null;\n}\n\n/** `router_id` da tela (nó 'page'); `null` em nó de grupo. */\nexport function routerIdOf(route: Route | null | undefined): string | null {\n return route?.router_id ?? null;\n}\n","import { Route } from './route.model';\n\n/**\n * Funde nós IRMÃOS que apontam para o mesmo endereço (`route_redirect`), em toda a árvore.\n *\n * Herança do roteamento antigo: o nível do nó (header/navigation/menu/item/submenu/page) dizia ONDE ele\n * era desenhado — header no topo, menu na lateral, o resto no `<router-outlet>` de cada app. Agora tudo\n * é menu (`spine-sidebar`) e o nível não importa mais, só o endereço. Só que o argos-auth-server monta a\n * view pulando nível vazio: um router header(\"laboratorio\")→page(\"prova-de-conceito\") e outro\n * navigation(\"laboratorio\")→page(\"dashboard\") viram dois nós de topo DIFERENTES com o mesmo\n * `/laboratorio`. Resultado: dois \"laboratorio\" no menu, e a resolução por nível (`findRouteThrough`, que\n * pega o PRIMEIRO irmão que casa) só enxergava os filhos de um deles — a página do outro caía no\n * fallback do `ViewGuard` (volta para o início). Achado real, 2026-10-07.\n *\n * Regras:\n * - Só funde irmãos da MESMA lista, com `route_redirect` igual e não vazio (grupo transparente, sem\n * endereço, nunca é fundido — não há o que comparar).\n * - O nó fundido é o primeiro da lista (mantém posição, nome, ícone e `routed_id` dele); `router_id`/\n * `description`/`source_template_router_id` vêm do primeiro que tiver. Os filhos de todos são\n * juntados (ordenados por `route_order`, estável) e fundidos de novo, recursivamente.\n * - Lista sem nenhum endereço repetido sai IGUAL (mesmo array, mesmos objetos): nada muda para app cuja\n * árvore já era consistente.\n * - Nunca muta a entrada (a view é do `ViewService` do orfeu, compartilhada).\n *\n * Use `spineRoutesOf(view)` em vez de ler `view.routes` direto: o resultado é guardado por identidade do\n * array, então todo consumidor (guard, painel, sidebar, busca...) recebe a MESMA árvore fundida.\n */\nexport function mergeRouteTree(routes: readonly Route[] | null | undefined): Route[] {\n if (!routes?.length) return [];\n const cached = cache.get(routes);\n if (cached) return cached;\n const merged = mergeLevel(routes);\n cache.set(routes, merged);\n return merged;\n}\n\n/** A árvore fundida da view atual (`ViewService.currentView`) — ver `mergeRouteTree`. */\nexport function spineRoutesOf(view: { routes?: readonly Route[] | null } | null | undefined): Route[] {\n return mergeRouteTree(view?.routes);\n}\n\nconst cache = new WeakMap<readonly Route[], Route[]>();\n\nfunction mergeLevel(routes: readonly Route[]): Route[] {\n const byRedirect = new Map<string, Route[]>();\n for (const r of routes) {\n const key = r?.route_redirect;\n if (!key) continue;\n const group = byRedirect.get(key);\n if (group) group.push(r);\n else byRedirect.set(key, [r]);\n }\n\n let changed = false;\n const out: Route[] = [];\n for (const r of routes) {\n const key = r?.route_redirect;\n const group = key ? byRedirect.get(key)! : null;\n if (group && group.length > 1) {\n changed = true;\n // Só o primeiro do grupo entra (com os filhos de todos); os demais somem daqui.\n if (group[0] === r) out.push(mergeGroup(group));\n continue;\n }\n const children = r?.routes;\n const mergedChildren = children?.length ? mergeLevel(children) : children;\n if (mergedChildren !== children) {\n changed = true;\n out.push({ ...r, routes: mergedChildren });\n } else {\n out.push(r);\n }\n }\n return changed ? out : (routes as Route[]);\n}\n\nfunction mergeGroup(group: Route[]): Route {\n const [base] = group;\n const pick = <K extends keyof Route>(key: K): Route[K] => group.find((r) => r[key] != null)?.[key] ?? base[key];\n const children = group\n .flatMap((r) => r.routes ?? [])\n .map((r, index) => ({ r, index }))\n .sort((a, b) => (a.r.route_order ?? Infinity) - (b.r.route_order ?? Infinity) || a.index - b.index)\n .map(({ r }) => r);\n return {\n ...base,\n router_id: pick('router_id'),\n description: pick('description'),\n source_template_router_id: pick('source_template_router_id'),\n routes: mergeLevel(children),\n };\n}\n","import { Type } from '@angular/core';\nimport { Route } from './route.model';\n\n/**\n * Página que o PRÓPRIO spine desenha, fora da árvore de rotas do backend (ex.: \"Sugestões do app\", de quem pede).\n *\n * As telas de um app vêm do argos-auth (`ViewService.currentView`): só existe o que o template/client cadastrou. Uma\n * página do spine precisa existir em TODO app que usa o recurso, sem migration nem cadastro por client — então ela se\n * registra aqui no bootstrap e a resolução de rotas (`resolveRouteChain`, `ComponentDistributorService`) a consulta\n * quando a árvore do backend NÃO resolve a URL. A árvore do app vence sempre: um app com rota própria no mesmo\n * endereço continua com a dele.\n *\n * A rota sintética é um nó 'page' de um nível só (`route_redirect` = o endereço), sem `routed_id`: o `x-route-id`\n * (auditoria) fica de fora, como numa página sem rota cadastrada. O `router_id` é a chave que o distribuidor usa para\n * achar o `load`, e não é UUID de propósito: não colide com nenhum router do banco.\n */\nexport interface SpineBuiltinPage {\n /** O nó da página: `route_redirect` (o endereço, ex. \"/sugestoes\"), nome, ícone e `router_id` (a chave). */\n readonly route: Route;\n /** Componente da página, via `import()` (fica num chunk próprio). */\n readonly load: () => Promise<Type<unknown>>;\n}\n\nconst pages = new Map<string, SpineBuiltinPage>();\n\n/** Registra (ou troca) uma página do spine. Chamado no bootstrap, por quem liga o recurso (ex.: `provideShell`). */\nexport function registerSpineBuiltinPage(page: SpineBuiltinPage): void {\n if (page.route.route_redirect) pages.set(page.route.route_redirect, page);\n}\n\n/** A página do spine no endereço (sem query/fragmento), ou null. */\nexport function spineBuiltinPageAt(url: string): SpineBuiltinPage | null {\n const path = (url.split(/[?#]/)[0] || '/').replace(/\\/+$/, '') || '/';\n return pages.get(path) ?? null;\n}\n\n/** A página do spine pelo `router_id` sintético (o que o distribuidor recebe), ou null. */\nexport function spineBuiltinPageById(routerId: string | null | undefined): SpineBuiltinPage | null {\n if (!routerId) return null;\n for (const page of pages.values()) if (page.route.router_id === routerId) return page;\n return null;\n}\n\n/** Só para testes: esquece as páginas registradas. */\nexport function clearSpineBuiltinPages(): void {\n pages.clear();\n}\n","import { Type } from '@angular/core';\nimport {\n AlertComponent,\n ButtonComponent,\n DrawerComponent,\n IconButtonComponent,\n IconComponent,\n MenuButtonComponent,\n MenuComponent,\n ModalComponent,\n SidebarComponent,\n SidebarGroupComponent,\n SidebarLinkComponent,\n SidebarNodeComponent,\n ToastStackComponent,\n} from '@trismegisto/angular';\n\n/**\n * Ponto único de import dos componentes standalone do `@trismegisto/angular` usados nos templates do\n * spine. O DS novo é standalone-only (sem agregador), então este array cumpre o mesmo papel prático:\n * um `@Component({ imports: [...HERMES_DS_IMPORTS] })` em vez de listar cada símbolo em cada arquivo\n * que usa `hm-*`.\n */\nexport const HERMES_DS_IMPORTS: readonly Type<unknown>[] = [\n AlertComponent,\n ButtonComponent,\n DrawerComponent,\n IconButtonComponent,\n IconComponent,\n MenuButtonComponent,\n MenuComponent,\n ModalComponent,\n SidebarComponent,\n SidebarGroupComponent,\n SidebarLinkComponent,\n SidebarNodeComponent,\n ToastStackComponent,\n];\n","import { InjectionToken } from '@angular/core';\nimport type { HermesThemeExtension } from '@trismegisto/primitives';\nimport { SpineLogoConfig } from './brand';\n\nexport interface SpineConfig {\n clientId: string;\n /**\n * Sobrescritas do app (opcional): nome e cores de uma família da lib (`replace: { poseidon: minhaFamilia }`) e o\n * desenho de uma fonte da lib (`replaceFonts: { figtree: minhaFonte }`), mais as iniciais (`defaultFamily`,\n * `defaultFont`). O app não acrescenta família nem fonte: o id salvo é sempre o da lib, e um app sem a sobrescrita\n * mostra a original. Ver `extendThemeConfig` do `@trismegisto/primitives`; a família se monta e exporta no\n * `hm-theme-builder`.\n */\n theme?: HermesThemeExtension;\n /** Nome do app exibido ao lado do logo no header (ex.: \"Hefesto\"). Padrão: \"Hermes\". */\n appName?: string;\n /**\n * Logo do header, servido pelo próprio app (caminho relativo ao `<base href>`, ex.: arquivo em\n * `src/assets/images/`). Formas:\n * - omitido: convenção `assets/images/logo.svg` (`SPINE_DEFAULT_LOGO`);\n * - `'assets/images/logo.png'`: um arquivo só, para os dois temas;\n * - `{ light, dark?, alt? }`: `dark` é usado no tema escuro (do `ThemeService`); `alt` substitui o texto\n * alternativo padrão;\n * - `false`: sem imagem (só o nome, sem nenhuma requisição).\n * Se a imagem não carregar (404/erro), o header esconde a imagem e mostra só o nome. Um componente de\n * marca em `SPINE_BRAND` (`@trismegisto/spine/layout`) tem prioridade sobre a imagem.\n */\n logo?: SpineLogoConfig | false;\n /** Mostra o `appName` ao lado do logo. Padrão: `true`. Com `false` o nome só aparece se não houver logo\n * visível (sem imagem, ou imagem que falhou) — o link da marca nunca fica sem texto. */\n showAppName?: boolean;\n /** Favicon do app (ex.: `'assets/favicon.ico'`). Se definido, o `provideUi` atualiza o `<link rel=\"icon\">`\n * do `index.html` (ou cria um) no bootstrap; sem isto o spine não mexe no favicon. */\n favicon?: string;\n /** Exibe a aba \"Especificação técnica\" da documentação das telas (`RouteDocument.loadTechnical`).\n * Padrão: `isDevMode()`. Apps com build de produção em homologação passam\n * `!environment.production` (ou equivalente) para mostrá-la fora de produção. */\n technicalDocs?: boolean;\n /**\n * Recursos opcionais do painel de configurações (todos desligados sem configuração). Ver `SpineFeatures`.\n */\n features?: SpineFeatures;\n}\n\n/** Um servidor MCP do app, oferecido em Sessões › \"Conectar um agente de IA\". */\nexport interface SpineMcpServer {\n /** Nome da entrada no `.mcp.json` (ex.: `hefesto`). Letras, números, `-` e `_`. */\n name: string;\n /** URL do MCP. Relativa (`/hefesto/mcp`) é resolvida contra a origem da página. */\n url: string;\n /** Rótulo exibido (padrão: `name`). */\n label?: string;\n /** Valor de `x-mcp-scopes` no modo só leitura. Omitido: o header não vai (o MCP já é só leitura sem ele). */\n readScopes?: string;\n /** Valor de `x-mcp-scopes` no modo leitura e escrita (ex.: `deploy.*`). Omitido: o servidor só é oferecido para leitura. */\n writeScopes?: string;\n}\n\n/** Tipo de aviso que o app emite (`SpineNoticesService.notify`), ligável/desligável em Configurações › Notificações. */\nexport interface SpineNoticeType {\n /** Identificador estável (ex.: `deploy-concluido`): é a chave da preferência salva. */\n id: string;\n label: string;\n description?: string;\n /** Ligado enquanto a pessoa não escolher. Padrão: `true`. */\n defaultEnabled?: boolean;\n}\n\n/**\n * Recursos opcionais do painel de configurações. Cada um só aparece quando ligado aqui (e, quando depende do Argos,\n * com a API da conta disponível — `AUTH_CONFIG` com `authority`/`realmId`).\n */\nexport interface SpineFeatures {\n /** Sessões › \"Conectar um agente de IA\": gera um token de aplicação e a configuração MCP pronta para colar.\n * Precisa de `SPINE_ADMIN_API` (tokens de aplicação). */\n aiAgent?: { servers: readonly SpineMcpServer[] };\n /** MFA › \"Atividade da conta\": entradas e tentativas que falharam desta conta (últimos 90 dias, API da conta). */\n accountActivity?: boolean;\n /** Conta › \"Encerrar por inatividade\". `true` = opções padrão; `{ min, max }` limita os minutos (com `max` a\n * opção \"Nunca\" some e a escolha é limitada a ele). */\n idleTimeout?: boolean | { min?: number; max?: number };\n /** Conta › \"Tela inicial\": início, um favorito ou a última tela visitada, aplicada depois do login. */\n startPage?: boolean;\n /** Conta › \"Crachá padrão\": o nível de acesso com que o login entra (guardado no Argos, vale nos outros navegadores). */\n defaultBadge?: boolean;\n /** Configurações › Notificações: os tipos de aviso que o app emite e o aviso do navegador com a aba em segundo plano. */\n notices?: { types: readonly SpineNoticeType[] };\n /** Preferências (aparência, região, acessibilidade, favoritos, tela inicial…) guardadas também na conta do Argos,\n * para acompanharem a pessoa em qualquer navegador. Sem a API da conta, ficam só no navegador. */\n accountPreferences?: boolean;\n /** Configuração inicial em tela cheia no primeiro acesso (aparência e o essencial). Ligada por padrão; `false`\n * desliga. \"Feita\" vale para a pessoa em todos os apps quando as preferências estão na conta. */\n initialSetup?: boolean;\n /** Avaliações (1 a 5 estrelas e um comentário): \"Avaliar esta tela\" na barra da página e \"Avaliar o {app}\" no menu\n * do perfil; quem administra vê os resultados no auto-serviço (tela Avaliações). Ligado por padrão quando há\n * `SPINE_ADMIN_API` (`/me/ratings`), como as sugestões; `false` desliga. Sem a API, nada aparece. */\n ratings?: boolean;\n /** Sugestões de melhoria: \"Sugerir melhoria\" na barra da página (com \"Minhas sugestões\"); quem administra acompanha\n * num kanban no auto-serviço (tela Sugestões). Ligado por padrão quando há `SPINE_ADMIN_API`\n * (`/me/suggestions`); `false` desliga. Sem a API, nada aparece. */\n suggestions?: boolean;\n}\n\nexport const SPINE_CONFIG = new InjectionToken<SpineConfig>('SPINE_CONFIG');\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, NgZone, Optional, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { HermesThemeMode, HermesThemeName, HermesThemeService } from '@trismegisto/angular';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\n\n/**\n * Wrapper fino sobre `HermesThemeService` (que já persiste em `localStorage` e aplica\n * `data-theme`/`--hm-*` via `HermesThemeDirective`): mantém o mesmo nome/API de injeção do\n * spine antigo, e adiciona só o que o DS novo não cobre — sincronização entre ABAS do\n * navegador via `BroadcastChannel` (o `ThemeService` antigo tinha isso; `HermesThemeService`\n * é por-aba). Aplica os atributos diretamente no `<body>` em vez de exigir que cada app\n * consumidor lembre de colocar `hermesTheme` no template — mesmo espírito do antigo, que\n * também escrevia `hermes-theme` no `<body>` a partir do serviço, não do template.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n private channel: BroadcastChannel | null = null;\n private readonly channelName: string;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: Object,\n private zone: NgZone,\n @Optional() @Inject(SPINE_CONFIG) config: SpineConfig | null,\n ) {\n const ns = config?.clientId ?? 'app';\n this.channelName = `spine_theme_${ns}`;\n\n if (isPlatformBrowser(this.platformId)) {\n effect(() => {\n const body = this.document.body;\n body.setAttribute('data-theme', this.hermesTheme.theme());\n body.setAttribute('data-family', this.hermesTheme.family());\n body.setAttribute('data-density', this.hermesTheme.density());\n body.setAttribute('data-font', this.hermesTheme.font());\n const palette = this.hermesTheme.palette();\n body.style.setProperty('--hm-accent', palette.accent);\n body.style.setProperty('--hm-action', palette.accent);\n body.style.setProperty('--hm-panel-bg', palette.panelBg);\n body.style.setProperty('--hm-panel-accent', palette.accent);\n });\n\n this.channel = new BroadcastChannel(this.channelName);\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'THEME_CHANGED') this.hermesTheme.setTheme(e.data.theme);\n if (e.data?.type === 'THEME_MODE_CHANGED') this.hermesTheme.setMode(e.data.mode);\n });\n }\n }\n\n get current(): HermesThemeName {\n return this.hermesTheme.theme();\n }\n\n /** Escolha do usuário: `light`, `dark` ou `system` (acompanha o sistema operacional). */\n get mode(): HermesThemeMode {\n return this.hermesTheme.mode();\n }\n\n setMode(mode: HermesThemeMode) {\n this.hermesTheme.setMode(mode);\n this.channel?.postMessage({ type: 'THEME_MODE_CHANGED', mode });\n }\n\n setTheme(theme: HermesThemeName) {\n this.hermesTheme.setTheme(theme);\n this.channel?.postMessage({ type: 'THEME_CHANGED', theme });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HermesFamily, HermesThemeService } from '@trismegisto/angular';\n\n/**\n * Wrapper fino sobre `HermesThemeService.family`/`setFamily`/`families` — substitui o\n * `applyThemePreset`/`PRESETS` do addon `theme-builder` antigo (que já expunha só paletas\n * FIXAS pré-definidas, nunca cor arbitrária digitada pelo usuário: o spine antigo usava só\n * essa lista fixa, então trocar para `family` do DS novo é a mesma mecânica de UX — grid de\n * paletas prontas —, só muda o catálogo de opções e como cada uma deriva claro/escuro\n * internamente). Persistência entre abas já vem de `HermesThemeService` (localStorage).\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemePresetService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n get current(): HermesFamily {\n const id = this.hermesTheme.family();\n return this.families.find((f) => f.id === id) ?? this.families[0];\n }\n\n get families(): readonly HermesFamily[] {\n return this.hermesTheme.families;\n }\n\n setPreset(family: HermesFamily): void {\n this.hermesTheme.setFamily(family.id);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, NgZone, Optional, PLATFORM_ID, inject } from '@angular/core';\nimport { HermesDensity, HermesThemeService } from '@trismegisto/angular';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\n\nexport interface DensitySetting {\n name: HermesDensity;\n}\n\n/**\n * Wrapper fino sobre `HermesThemeService.density`/`setDensity` (já persistido em\n * `localStorage` pelo DS novo) — mantém o nome/API do spine antigo e adiciona a\n * sincronização entre abas via `BroadcastChannel` que `HermesThemeService` não tem\n * (é por-aba). Ver `ThemeService` (mesmo padrão, mesmo motivo).\n */\n@Injectable({ providedIn: 'root' })\nexport class DensityService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n private channel: BroadcastChannel | null = null;\n private readonly channelName: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n private zone: NgZone,\n @Optional() @Inject(SPINE_CONFIG) config: SpineConfig | null,\n ) {\n const ns = config?.clientId ?? 'app';\n this.channelName = `spine_density_${ns}`;\n\n if (isPlatformBrowser(this.platformId)) {\n this.channel = new BroadcastChannel(this.channelName);\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'DENSITY_CHANGED') this.hermesTheme.setDensity(e.data.density);\n });\n }\n }\n\n get current(): DensitySetting {\n return { name: this.hermesTheme.density() };\n }\n\n setDensity(density: HermesDensity) {\n this.hermesTheme.setDensity(density);\n this.channel?.postMessage({ type: 'DENSITY_CHANGED', density });\n }\n\n /** Só alterna entre comfortable e compact — mesmo comportamento do spine antigo\n * (que chamava a densidade não-compacta de \"regular\"; o DS novo chama de \"comfortable\"). */\n toggleDensity() {\n this.setDensity(this.current.name === 'compact' ? 'comfortable' : 'compact');\n }\n}\n","/**\n * Logo e favicon do app (`SpineConfig.logo`/`SpineConfig.favicon`). O spine não embute marca nenhuma:\n * o arquivo é sempre do app, servido de `src/assets`.\n */\n\n/** Logo do header: um caminho (os dois temas) ou as variantes clara/escura + texto alternativo. */\nexport type SpineLogoConfig = string | { light: string; dark?: string; alt?: string };\n\n/** Convenção quando o app não configura `logo`: `src/assets/images/logo.svg` servido em `assets/images/`. */\nexport const SPINE_DEFAULT_LOGO = 'assets/images/logo.svg';\n\n/** Logo já normalizado. */\nexport interface SpineLogoSources {\n light: string;\n dark: string | null;\n /** Texto alternativo explícito; `null` usa o padrão (o nome do app). */\n alt: string | null;\n}\n\n/** Normaliza `SpineConfig.logo`: omitido → convenção; `false`/vazio → sem imagem (`null`). */\nexport function resolveSpineLogo(logo: SpineLogoConfig | false | null | undefined): SpineLogoSources | null {\n if (logo === undefined || logo === null) return { light: SPINE_DEFAULT_LOGO, dark: null, alt: null };\n if (logo === false) return null;\n if (typeof logo === 'string') return logo.trim() ? { light: logo, dark: null, alt: null } : null;\n if (!logo.light?.trim()) return null;\n return { light: logo.light, dark: logo.dark?.trim() ? logo.dark : null, alt: logo.alt ?? null };\n}\n\nconst FAVICON_TYPES: Record<string, string> = {\n ico: 'image/x-icon',\n svg: 'image/svg+xml',\n png: 'image/png',\n gif: 'image/gif',\n webp: 'image/webp',\n};\n\n/**\n * Aponta o favicon do documento para `href`: atualiza o primeiro `<link rel=\"icon\">` (ou `shortcut icon`)\n * e remove os outros (senão o navegador pode continuar escolhendo um deles); sem nenhum, cria um no\n * `<head>`. O `type` acompanha a extensão (some quando ela é desconhecida).\n */\nexport function applySpineFavicon(doc: Document, href: string): HTMLLinkElement | null {\n if (!href?.trim() || !doc?.head) return null;\n const links = Array.from(doc.head.querySelectorAll<HTMLLinkElement>('link[rel~=\"icon\"]'));\n const link = links.shift() ?? doc.createElement('link');\n links.forEach((extra) => extra.remove());\n link.rel = 'icon';\n const ext = href.split(/[?#]/)[0].split('.').pop()?.toLowerCase() ?? '';\n const type = FAVICON_TYPES[ext];\n if (type) link.type = type;\n else link.removeAttribute('type');\n link.setAttribute('href', href);\n if (!link.isConnected) doc.head.appendChild(link);\n return link;\n}\n","// GERADO por scripts/generate-spine-icons.mjs — não editar à mão.\n// Ícones que o próprio spine desenha (dados embutidos, não importados do catálogo — ver o cabeçalho do gerador).\n// O `provideUi()` registra este conjunto no bootstrap; o resto do catálogo chega sob demanda\n// (`provideHermesIconLoader`).\nimport type { RegisteredIcon } from '@trismegisto/icons';\n\n/** Os 119 ícones que o spine usa por dentro. */\nexport const SPINE_ICONS: readonly RegisteredIcon[] = [\n {\"name\":\"accessibility-1\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><circle cx=\\\"12\\\" cy=\\\"7.6\\\" r=\\\"1.4\\\"/><path d=\\\"M7.5 10.5l4.5.8 4.5-.8M12 11.3v2.4M12 13.7l-2 3.6M12 13.7l2 3.6\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"alarm-clock\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"13\\\" r=\\\"7\\\"/><path d=\\\"M12 9.5v3.8l2.2 1.5M4 6.5l3-2.5M20 6.5l-3-2.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"angle\",\"body\":\"<path d=\\\"M6.5 14.5l5.5-5.5 5.5 5.5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"announcement\",\"body\":\"<path d=\\\"M3.5 10.5a1 1 0 0 1 1-1h3L17 5v14l-9.5-4.5h-3a1 1 0 0 1-1-1z\\\"/><path d=\\\"M7.5 9.5v5\\\"/><path d=\\\"M8 14.8l1 4a1 1 0 0 0 1 .7h.8a1 1 0 0 0 1-1.2l-.8-2.6\\\"/><path d=\\\"M20 9.5a3.5 3.5 0 0 1 0 5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"application\",\"body\":\"<rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"18\\\" height=\\\"15\\\" rx=\\\"2\\\"/><path d=\\\"M3 9h18\\\"/><path d=\\\"M6.5 6.8h.01\\\"/><path d=\\\"M9.5 6.8h.01\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"applications\",\"body\":\"<rect x=\\\"4\\\" y=\\\"4\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"4\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"4\\\" y=\\\"13.5\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"13.5\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"archive\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4.5\\\" width=\\\"17\\\" height=\\\"4.5\\\" rx=\\\"1.5\\\"/><path d=\\\"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9M10 13h4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"arrow\",\"body\":\"<path d=\\\"M12 19V5M8.1 8.9L12 5l3.9 3.9\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"arrow-mini\"]} as RegisteredIcon,\n {\"name\":\"arrow-send\",\"body\":\"<path d=\\\"M21 3L10.5 13.5M21 3l-6.5 18-4-7.5L3 9.5z\\\"/>\"} as RegisteredIcon,\n {\"name\":\"assign-user\",\"body\":\"<circle cx=\\\"9.5\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M3 20c.7-3.4 3.2-5.5 6.5-5.5 1.7 0 3 .5 4 1.2\\\"/><path d=\\\"M14.5 17.5h6M17.5 14.5l3 3-3 3\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"authenticator\",\"body\":\"<rect x=\\\"7\\\" y=\\\"2.5\\\" width=\\\"10\\\" height=\\\"19\\\" rx=\\\"2.5\\\"/><path d=\\\"M10.5 18.5h3\\\"/><path d=\\\"M9.8 10.5l1.8 1.8 3-3.3\\\"/>\"} as RegisteredIcon,\n {\"name\":\"ballon-question\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M10 9a2 2 0 1 1 3 1.7c-.7.4-1 .8-1 1.5\\\"/><path d=\\\"M12 14.8h.01\\\"/>\"} as RegisteredIcon,\n {\"name\":\"ban\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M6 6l12 12\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"bar-chart\",\"body\":\"<path d=\\\"M4 4v16h16\\\"/><rect x=\\\"8\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"5\\\" rx=\\\"0.8\\\"/><rect x=\\\"12.5\\\" y=\\\"10.5\\\" width=\\\"3\\\" height=\\\"9\\\" rx=\\\"0.8\\\"/><rect x=\\\"17\\\" y=\\\"7.5\\\" width=\\\"3\\\" height=\\\"12\\\" rx=\\\"0.8\\\"/>\",\"solid\":true,\"categories\":[\"chart\"]} as RegisteredIcon,\n {\"name\":\"bell\",\"body\":\"<path d=\\\"M6.5 16.5V11a5.5 5.5 0 0 1 11 0v5.5l1.5 2H5z\\\"/><path d=\\\"M10 21a2 2 0 0 0 4 0\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"book\",\"body\":\"<path d=\\\"M6.5 3.5h11A1.5 1.5 0 0 1 19 5v14a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 5 19V5a1.5 1.5 0 0 1 1.5-1.5z\\\"/><path d=\\\"M9 3.5v17M12.5 8h3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"bookmark\",\"body\":\"<path d=\\\"M6.5 4.5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16l-5.5-4-5.5 4z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"browser-setting\",\"body\":\"<rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"18\\\" height=\\\"15\\\" rx=\\\"2.5\\\"/><path d=\\\"M3 9h18\\\"/><path d=\\\"M11.02 11.58L11.21 10.48L12.79 10.48L12.98 11.58L13.78 12.04L14.82 11.66L15.61 13.03L14.76 13.73L14.76 14.67L15.61 15.37L14.82 16.74L13.78 16.36L12.98 16.82L12.79 17.92L11.21 17.92L11.02 16.82L10.22 16.36L9.18 16.74L8.39 15.37L9.24 14.67L9.24 13.73L8.39 13.03L9.18 11.66L10.22 12.04Z\\\"/><circle cx=\\\"12\\\" cy=\\\"14.2\\\" r=\\\"1\\\"/>\"} as RegisteredIcon,\n {\"name\":\"bug\",\"body\":\"<ellipse cx=\\\"12\\\" cy=\\\"13.5\\\" rx=\\\"4.5\\\" ry=\\\"6\\\"/><path d=\\\"M9.5 7.5a2.5 2.5 0 0 1 5 0M12 7.5v12M7.5 11H4M16.5 11H20M7.5 16H4.5M16.5 16h3M8 8L5.5 5.5M16 8l2.5-2.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"calendar\",\"body\":\"<rect x=\\\"4\\\" y=\\\"5.5\\\" width=\\\"16\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M4 10h16M8.5 3.5v4M15.5 3.5v4\\\"/>\",\"solid\":true,\"categories\":[\"foundation\",\"social\"],\"aliases\":[\"calendar-mini\"]} as RegisteredIcon,\n {\"name\":\"calendar-check\",\"body\":\"<rect x=\\\"4\\\" y=\\\"5.5\\\" width=\\\"16\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M4 10h16M8.5 3.5v4M15.5 3.5v4\\\"/><path d=\\\"M8.8 14.8l2.2 2.2 4.2-4.2\\\"/>\"} as RegisteredIcon,\n {\"name\":\"chat-bubble\",\"body\":\"<path d=\\\"M12 4.5c4.7 0 8.5 3 8.5 7s-3.8 7-8.5 7c-1 0-1.9-.1-2.8-.4L5 20l1.2-3.6C4.6 15.3 3.5 13.7 3.5 11.5c0-4 3.8-7 8.5-7z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"check\",\"body\":\"<path d=\\\"M5 12.5l4.5 4.5L19 7.5\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"check-mini\"]} as RegisteredIcon,\n {\"name\":\"check-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M8 12.3l2.8 2.8 5.2-5.6\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"check-circle-mini\"]} as RegisteredIcon,\n {\"name\":\"circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"circle-empty\",\"body\":\"<path d=\\\"M20.46 12.8A8.5 8.5 0 0 1 19.51 15.98M17.42 18.55A8.5 8.5 0 0 1 14.5 20.12M11.2 20.46A8.5 8.5 0 0 1 8.02 19.51M5.45 17.42A8.5 8.5 0 0 1 3.88 14.5M3.54 11.2A8.5 8.5 0 0 1 4.49 8.02M6.58 5.45A8.5 8.5 0 0 1 9.5 3.88M12.8 3.54A8.5 8.5 0 0 1 15.98 4.49M18.55 6.58A8.5 8.5 0 0 1 20.12 9.5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"clipboard\",\"body\":\"<rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"14\\\" height=\\\"16\\\" rx=\\\"2\\\"/><rect x=\\\"9\\\" y=\\\"3\\\" width=\\\"6\\\" height=\\\"4\\\" rx=\\\"1.2\\\"/><path d=\\\"M8.5 12h7M8.5 16h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"clock\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M12 7.5V12l3 2\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"code\",\"body\":\"<path d=\\\"M8.5 7l-5 5 5 5M15.5 7l5 5-5 5\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"cog\",\"body\":\"<path d=\\\"M9.73 5.91L10.23 3.69L13.77 3.69L14.27 5.91L16.14 6.99L18.32 6.31L20.08 9.37L18.41 10.92L18.41 13.08L20.08 14.63L18.32 17.69L16.14 17.01L14.27 18.09L13.77 20.31L10.23 20.31L9.73 18.09L7.86 17.01L5.68 17.69L3.92 14.63L5.59 13.08L5.59 10.92L3.92 9.37L5.68 6.31L7.86 6.99Z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"color-palette\",\"body\":\"<path d=\\\"M12 3.5a8.5 8.5 0 0 0 0 17c1.4 0 2-1 1.5-2.2-.5-1.2.2-2.3 1.6-2.3H17a3.5 3.5 0 0 0 3.5-3.5C20.5 7 16.8 3.5 12 3.5z\\\"/><path d=\\\"M7.8 11h.01\\\"/><path d=\\\"M10 7.5h.01\\\"/><path d=\\\"M14.5 7.5h.01\\\"/><path d=\\\"M8 15h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"comment-message\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M8 9.5h8M8 12.5h5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"computer\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"12\\\" height=\\\"9\\\" rx=\\\"1.5\\\"/><path d=\\\"M7 18h4M9 14v4\\\"/><rect x=\\\"17\\\" y=\\\"4.5\\\" width=\\\"4\\\" height=\\\"15\\\" rx=\\\"1.5\\\"/><path d=\\\"M19 16.5h.01\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"copy\",\"body\":\"<rect x=\\\"9\\\" y=\\\"7\\\" width=\\\"11\\\" height=\\\"13.5\\\" rx=\\\"2\\\"/><path d=\\\"M12 12h5M12 15.5h5M15 7V5.5a2 2 0 0 0-2-2H6.5a2 2 0 0 0-2 2V16a2 2 0 0 0 2 2H9\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"density-comfortable\",\"body\":\"<path d=\\\"M12 10V3.5M8.5 7L12 3.5 15.5 7M12 14v6.5M8.5 17l3.5 3.5 3.5-3.5\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"density-expand\",\"spacing-comfortable\"]} as RegisteredIcon,\n {\"name\":\"density-compact\",\"body\":\"<path d=\\\"M12 3v6.5M8.5 6l3.5 3.5L15.5 6M12 21v-6.5M8.5 18l3.5-3.5 3.5 3.5M6 12h12\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"density-collapse\",\"spacing-compact\"]} as RegisteredIcon,\n {\"name\":\"details\",\"body\":\"<path d=\\\"M5 7h.01\\\"/><path d=\\\"M5 12h.01\\\"/><path d=\\\"M5 17h.01\\\"/><path d=\\\"M9 7H20M9 12H20M9 17H20\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"devices\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"13\\\" height=\\\"9.5\\\" rx=\\\"1.5\\\"/><path d=\\\"M7 18.5h5M9.5 14.5v4\\\"/><rect x=\\\"17.5\\\" y=\\\"9\\\" width=\\\"3.5\\\" height=\\\"9\\\" rx=\\\"1.2\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"doc-list\",\"body\":\"<path d=\\\"M7.5 3.5h6l4.5 4.5v11.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19.5v-14A1.5 1.5 0 0 1 7.5 3.5z\\\"/><path d=\\\"M13.5 3.5V8H18\\\"/><path d=\\\"M9.5 12.5h.01\\\"/><path d=\\\"M9.5 15.5h.01\\\"/><path d=\\\"M9.5 18.5h.01\\\"/><path d=\\\"M12.5 12.5H15M12.5 15.5H15M12.5 18.5H15\\\"/>\"} as RegisteredIcon,\n {\"name\":\"download\",\"body\":\"<path d=\\\"M12 4v11M7.5 10.5l4.5 4.5 4.5-4.5M5 16v3.5h14V16\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"ellipsis-vertical\",\"body\":\"<path d=\\\"M12 5.5h.01\\\"/><path d=\\\"M12 12h.01\\\"/><path d=\\\"M12 18.5h.01\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"employee-group\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3\\\"/><path d=\\\"M3.5 19.5c.6-3.3 2.8-5 5.5-5s4.9 1.7 5.5 5\\\"/><path d=\\\"M15.5 5.3a3 3 0 0 1 0 5.4M17 14.8c1.9.6 3.1 2.2 3.5 4.7\\\"/>\",\"solid\":true,\"categories\":[\"commerce\"]} as RegisteredIcon,\n {\"name\":\"error-standard\",\"body\":\"<polygon points=\\\"15.44 3.69 20.31 8.56 20.31 15.44 15.44 20.31 8.56 20.31 3.69 15.44 3.69 8.56 8.56 3.69\\\"/><path d=\\\"M12 7.5v5.5\\\"/><path d=\\\"M12 16.5h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"error-mini\"]} as RegisteredIcon,\n {\"name\":\"exclamation-triangle\",\"body\":\"<path d=\\\"M12 4l9 15.5H3z\\\"/><path d=\\\"M12 10v4\\\"/><path d=\\\"M12 17h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"eye\",\"body\":\"<path d=\\\"M2.5 12C5 7.5 8.5 6 12 6s7 1.5 9.5 6c-2.5 4.5-6 6-9.5 6s-7-1.5-9.5-6z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.8\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"file-text\",\"body\":\"<path d=\\\"M7.5 3.5h6l4.5 4.5v11.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19.5v-14A1.5 1.5 0 0 1 7.5 3.5z\\\"/><path d=\\\"M13.5 3.5V8H18\\\"/><path d=\\\"M9.5 12h5M9.5 15h5M9.5 18h2.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"filter\",\"body\":\"<path d=\\\"M4 5.5h16l-6 7.5v6l-4-2V13z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"filter-close\",\"body\":\"<path d=\\\"M3.5 4.5h15l-5.5 6.5v5.5l-3.5-1.5V11z\\\"/><path d=\\\"M16 15.5l4.5 4.5M20.5 15.5L16 20\\\"/>\"} as RegisteredIcon,\n {\"name\":\"filter-grid\",\"body\":\"<path d=\\\"M4 4.5h16l-6 6.5v3l-4-1.5V11z\\\"/><path d=\\\"M7 19h.01\\\"/><path d=\\\"M12 19h.01\\\"/><path d=\\\"M17 19h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"filter-grid-mini\"]} as RegisteredIcon,\n {\"name\":\"flame\",\"body\":\"<path d=\\\"M12 3.5c.5 3.5 5.5 5.5 5.5 11a5.5 5.5 0 0 1-11 0c0-2 1-3.5 2-4.5.3 1.5 1 2.2 1.8 2.5C10 9 10.5 6 12 3.5z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"floppy\",\"body\":\"<path d=\\\"M5.5 3.5h10l5 5v10a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2z\\\"/><path d=\\\"M7.5 3.5v4h7v-4M7 20.5v-6h10v6\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"form\",\"body\":\"<rect x=\\\"4.5\\\" y=\\\"3.5\\\" width=\\\"15\\\" height=\\\"17\\\" rx=\\\"2.5\\\"/><path d=\\\"M8 8h5M8 15.5h3\\\"/><rect x=\\\"8\\\" y=\\\"10\\\" width=\\\"8\\\" height=\\\"3\\\" rx=\\\"1\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"grid\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"3.5\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"3.5\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/>\"} as RegisteredIcon,\n {\"name\":\"grid-layout\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"17\\\" height=\\\"17\\\" rx=\\\"2.5\\\"/><path d=\\\"M10 3.5v17M10 12h10.5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"heart\",\"body\":\"<path d=\\\"M12 20s-7.5-4.6-7.5-10A4.3 4.3 0 0 1 12 7.3 4.3 4.3 0 0 1 19.5 10c0 5.4-7.5 10-7.5 10z\\\"/>\",\"solid\":true,\"categories\":[\"social\"],\"aliases\":[\"heart-fill\"]} as RegisteredIcon,\n {\"name\":\"help\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M9.5 9.7a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .9-1 1.7M12 16.8h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"history\",\"body\":\"<path d=\\\"M4 12a8 8 0 1 0 2.4-5.7M4.5 3.5v3.8h3.8M12 8v4l2.5 2\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"home\",\"body\":\"<path d=\\\"M4 11l8-6.5 8 6.5M6 9.8v9.7h12V9.8M10 19.5v-5h4v5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"hourglass\",\"body\":\"<path d=\\\"M7 3.5h10M7 20.5h10M8 3.5c0 4 4 5 4 8.5s-4 4.5-4 8.5M16 3.5c0 4-4 5-4 8.5s4 4.5 4 8.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"inbox\",\"body\":\"<path d=\\\"M3.5 13.5l2.5-8h12l2.5 8v4.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z\\\"/><path d=\\\"M3.5 13.5h5l1 2.5h5l1-2.5h5\\\"/>\",\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"info-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M12 11.2v5\\\"/><path d=\\\"M12 8h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"info-circle-mini\"]} as RegisteredIcon,\n {\"name\":\"key\",\"body\":\"<circle cx=\\\"7.5\\\" cy=\\\"16.5\\\" r=\\\"3.5\\\"/><path d=\\\"M10 14L20 4M16 8l2.5 2.5M13.5 10.5l2 2\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"keyboard\",\"body\":\"<rect x=\\\"2.5\\\" y=\\\"6\\\" width=\\\"19\\\" height=\\\"12\\\" rx=\\\"2.5\\\"/><path d=\\\"M6.5 10h.01M10.5 10h.01M14.5 10h.01M17.5 10h.01M8 14.5h8\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"language\",\"body\":\"<path d=\\\"M4 6h9M8.5 4v2M6 6c.5 3 2.5 5.5 5.5 7M11 6c-.5 3-2.5 5.5-6 7\\\"/><path d=\\\"M12 20l4.5-10 4.5 10M13.5 17h6\\\"/>\",\"solid\":true,\"categories\":[\"text-edit\"]} as RegisteredIcon,\n {\"name\":\"layers\",\"body\":\"<path d=\\\"M12 3.5l8.5 4-8.5 4-8.5-4z\\\"/><path d=\\\"M3.5 12.5l8.5 4 8.5-4M3.5 16.5l8.5 4 8.5-4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"lightbulb\",\"body\":\"<path d=\\\"M9 16.5v-1.8C7.3 13.5 6.5 11.9 6.5 10a5.5 5.5 0 0 1 11 0c0 1.9-.8 3.5-2.5 4.7v1.8z\\\"/><path d=\\\"M9.5 19.5h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"link\",\"body\":\"<g transform=\\\"rotate(-45 12 12)\\\"><path d=\\\"M9 8.5H7a3.5 3.5 0 0 0 0 7h2\\\"/><path d=\\\"M15 8.5h2a3.5 3.5 0 0 1 0 7h-2\\\"/><path d=\\\"M9.5 12h5\\\"/></g>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"list\",\"body\":\"<path d=\\\"M4 6h16M4 12h16M4 18h10\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"list-check\",\"body\":\"<path d=\\\"M11 6h9M11 12h9M11 18h9\\\"/><path d=\\\"M3.5 6.2l1.4 1.4 2.8-3M3.5 12.2l1.4 1.4 2.8-3M3.5 18.2l1.4 1.4 2.8-3\\\"/>\"} as RegisteredIcon,\n {\"name\":\"lock-close\",\"body\":\"<rect x=\\\"6\\\" y=\\\"10.5\\\" width=\\\"12\\\" height=\\\"9.5\\\" rx=\\\"2.5\\\"/><path d=\\\"M8.5 10.5V7.5a3.5 3.5 0 0 1 7 0v3\\\"/><circle cx=\\\"12\\\" cy=\\\"14.2\\\" r=\\\"1.4\\\"/><path d=\\\"M12 15.6v1.8\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"login\",\"body\":\"<path d=\\\"M14 4.5h4a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-4\\\"/><path d=\\\"M3.5 12L14 12M10.82 15.18L14 12L10.82 8.82\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"logout\",\"body\":\"<path d=\\\"M10 4.5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h4\\\"/><path d=\\\"M10 12L20.5 12M17.32 15.18L20.5 12L17.32 8.82\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"magnifying-glass\",\"body\":\"<circle cx=\\\"9.5\\\" cy=\\\"9.5\\\" r=\\\"5.5\\\"/><path d=\\\"M13.8 13.8L20 20\\\"/><path d=\\\"M6.8 9a2.8 2.8 0 0 1 2.7-2.7\\\"/>\"} as RegisteredIcon,\n {\"name\":\"mail\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5.5\\\" width=\\\"18\\\" height=\\\"13\\\" rx=\\\"2.5\\\"/><path d=\\\"M3.5 8l8.5 6 8.5-6\\\"/>\"} as RegisteredIcon,\n {\"name\":\"menu\",\"body\":\"<path d=\\\"M4 6.5h16M4 12h16M4 17.5h16\\\"/>\"} as RegisteredIcon,\n {\"name\":\"minus\",\"body\":\"<path d=\\\"M5 12h14\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"mobile\",\"body\":\"<rect x=\\\"7\\\" y=\\\"2.5\\\" width=\\\"10\\\" height=\\\"19\\\" rx=\\\"2.5\\\"/><path d=\\\"M10.5 18.5h3\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"moon\",\"body\":\"<path d=\\\"M19.5 14.5A8 8 0 1 1 9.5 4.5a6.5 6.5 0 0 0 10 10z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"new\",\"body\":\"<path d=\\\"M12 3.5c.5 4.5 2.5 6.5 8 8.5-5.5 2-7.5 4-8 8.5-.5-4.5-2.5-6.5-8-8.5 5.5-2 7.5-4 8-8.5z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"node\",\"body\":\"<polygon points=\\\"12 3.5 19.36 7.75 19.36 16.25 12 20.5 4.64 16.25 4.64 7.75\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"note\",\"body\":\"<path d=\\\"M5 4.5h14v10l-5 5H5z\\\"/><path d=\\\"M19 14.5h-5v5\\\"/><path d=\\\"M8 9h8M8 12.5h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"pencil\",\"body\":\"<path d=\\\"M4.5 19.5l.8-4.3L16 4.5a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8L8.8 18.7z\\\"/><path d=\\\"M13.5 7l3.5 3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"plugin\",\"body\":\"<path d=\\\"M6.5 8h11v3a5.5 5.5 0 0 1-11 0z\\\"/><path d=\\\"M9.5 3.5V8M14.5 3.5V8\\\"/><path d=\\\"M12 16.5v4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"plus\",\"body\":\"<path d=\\\"M12 5v14M5 12h14\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"pop-out\",\"body\":\"<path d=\\\"M10 5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-4\\\"/><path d=\\\"M14 4h6v6M20 4l-9 9\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"refresh\",\"body\":\"<path d=\\\"M18.5 8.25A7.5 7.5 0 1 1 10.06 4.76\\\"/><path d=\\\"M7.54 7.86L10.06 4.76L6.32 3.32\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"resize\",\"body\":\"<path d=\\\"M14 4h6v6M20 4l-6.5 6.5\\\"/><path d=\\\"M10 20H4v-6M4 20l6.5-6.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"rocket-diagonal\",\"body\":\"<g transform=\\\"rotate(45 12 12)\\\"><path d=\\\"M12 2.8c3 2.5 4 6 4 9.7l-1 3H9l-1-3c0-3.7 1-7.2 4-9.7z\\\"/><circle cx=\\\"12\\\" cy=\\\"9.5\\\" r=\\\"1.6\\\"/><path d=\\\"M8 12.5l-2.5 3 2.5.5M16 12.5l2.5 3-2.5.5\\\"/><path d=\\\"M10.5 18.5L12 21l1.5-2.5\\\"/></g>\"} as RegisteredIcon,\n {\"name\":\"scroll\",\"body\":\"<path d=\\\"M7 4.5h11.5v13a3 3 0 0 1-3 3H6.5a3 3 0 0 0 3-3V7A2.5 2.5 0 0 0 7 4.5z\\\"/><path d=\\\"M12.5 9h3.5M12.5 12.5h3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"search\",\"body\":\"<circle cx=\\\"10.5\\\" cy=\\\"10.5\\\" r=\\\"6.5\\\"/><path d=\\\"M15.5 15.5l5 5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"search-magnify\",\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"7\\\"/><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"2.5\\\"/><path d=\\\"M15 15l5.5 5.5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"shield\",\"body\":\"<path d=\\\"M12 3.5l7 2.5v5.5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\\\"/>\",\"solid\":true,\"categories\":[\"technology\"],\"aliases\":[\"empty-shield\"]} as RegisteredIcon,\n {\"name\":\"shield-check\",\"body\":\"<path d=\\\"M12 3.5l7 2.5v5.5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\\\"/><path d=\\\"M9 12l2.2 2.2L15.5 10\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"shrink\",\"body\":\"<path d=\\\"M20 10h-6V4M14 10l6.5-6.5\\\"/><path d=\\\"M4 14h6v6M10 14l-6.5 6.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"sms\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M8 11h.01\\\"/><path d=\\\"M12 11h.01\\\"/><path d=\\\"M16 11h.01\\\"/>\"} as RegisteredIcon,\n {\"name\":\"sort-vertical\",\"body\":\"<path d=\\\"M12 4v16M8.500 7.500L12 4l3.500 3.500M8.500 16.500L12 20l3.500-3.500\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"star\",\"body\":\"<polygon points=\\\"12 3.5 14.3 8.84 20.08 9.37 15.72 13.21 17 18.88 12 15.91 7 18.88 8.28 13.21 3.92 9.37 9.7 8.84\\\"/>\",\"solid\":true,\"categories\":[\"social\"],\"aliases\":[\"star-fill\",\"empty-star\",\"full-star\"]} as RegisteredIcon,\n {\"name\":\"sun\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"4\\\"/><path d=\\\"M19.00 12.00L21.00 12.00M16.95 16.95L18.36 18.36M12.00 19.00L12.00 21.00M7.05 16.95L5.64 18.36M5.00 12.00L3.00 12.00M7.05 7.05L5.64 5.64M12.00 5.00L12.00 3.00M16.95 7.05L18.36 5.64\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"tag\",\"body\":\"<path d=\\\"M3.5 12.5V5.5a2 2 0 0 1 2-2h7l8 8a2 2 0 0 1 0 2.8l-6.2 6.2a2 2 0 0 1-2.8 0z\\\"/><path d=\\\"M8 8h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"target\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"4.5\\\"/><path d=\\\"M12 12h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"text\",\"body\":\"<path d=\\\"M5 6.5V4.5h14v2M12 4.5v15M9.5 19.5h5\\\"/>\",\"categories\":[\"text-edit\"]} as RegisteredIcon,\n {\"name\":\"thumbs-up\",\"body\":\"<rect x=\\\"4\\\" y=\\\"11\\\" width=\\\"4\\\" height=\\\"9\\\" rx=\\\"1\\\"/><path d=\\\"M8 11l3-6.5a2 2 0 0 1 3 1.8L13.5 10H18a2 2 0 0 1 2 2.3l-1 5.7a2 2 0 0 1-2 1.7H8z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"timeline\",\"body\":\"<circle cx=\\\"5.5\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><circle cx=\\\"18.5\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><path d=\\\"M7.7 12h2.1M14.2 12h2.1M12 9.8V5M5.5 14.2V19M18.5 14.2V19\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"times\",\"body\":\"<path d=\\\"M5.5 5.5l13 13M18.5 5.5l-13 13\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"times-mini\"]} as RegisteredIcon,\n {\"name\":\"tools\",\"body\":\"<path d=\\\"M14.5 4a4.5 4.5 0 0 0-4.2 6L4 16.3a1.9 1.9 0 0 0 2.7 2.7L13 12.7a4.5 4.5 0 0 0 6.2-4.4L16.5 11l-2.7-.7-.8-2.8z\\\"/><path d=\\\"M4 4l4.4 4.4\\\"/><path d=\\\"M16.71 14.59l3.2 3.2a1.5 1.5 0 0 1-2.12 2.12l-3.2-3.2a1.5 1.5 0 0 1 2.12-2.12z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"trash\",\"body\":\"<path d=\\\"M5 7h14\\\"/><path d=\\\"M9 7V5h6v2\\\"/><path d=\\\"M7 7l.8 12.5h8.4L17 7z\\\"/><path d=\\\"M10.5 11v5M13.5 11v5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"tree-view\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"7\\\" height=\\\"4\\\" rx=\\\"1.2\\\"/><rect x=\\\"12\\\" y=\\\"10\\\" width=\\\"8.5\\\" height=\\\"3.5\\\" rx=\\\"1\\\"/><rect x=\\\"12\\\" y=\\\"16\\\" width=\\\"8.5\\\" height=\\\"3.5\\\" rx=\\\"1\\\"/><path d=\\\"M6 7.5v10.25h6M6 11.75h6\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"two-way-arrows\",\"body\":\"<path d=\\\"M4 8h16M16.5 4.5L20 8l-3.5 3.5M20 16H4M7.5 12.5L4 16l3.5 3.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"unarchive\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4.5\\\" width=\\\"17\\\" height=\\\"4\\\" rx=\\\"1\\\"/><path d=\\\"M5.5 8.5V18a1.5 1.5 0 0 0 1.5 1.5h10a1.5 1.5 0 0 0 1.5-1.5V8.5\\\"/><path d=\\\"M12 17v-6M9.5 13l2.5-2.5 2.5 2.5\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"undo\",\"body\":\"<path d=\\\"M8.5 5L4.5 9l4 4\\\"/><path d=\\\"M4.5 9h9a5.5 5.5 0 0 1 0 11H10\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"unlink\",\"body\":\"<g transform=\\\"rotate(-45 12 12)\\\"><path d=\\\"M9 8.5H7a3.5 3.5 0 0 0 0 7h2\\\"/><path d=\\\"M15 8.5h2a3.5 3.5 0 0 1 0 7h-2\\\"/></g><path d=\\\"M8.5 3.5V6M3.5 8.5H6M15.5 20.5V18M20.5 15.5H18\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"update\",\"body\":\"<path d=\\\"M19.5 11a7.5 7.5 0 0 0-13-4L4.5 9M4.5 5v4h4\\\"/><path d=\\\"M4.5 13a7.5 7.5 0 0 0 13 4l2-2M19.5 19v-4h-4\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"user\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M5 20c.8-3.6 3.8-5.5 7-5.5s6.2 1.9 7 5.5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"user-checkmark\",\"body\":\"<circle cx=\\\"8.5\\\" cy=\\\"8\\\" r=\\\"3\\\"/><path d=\\\"M2.5 19.5c.6-3.2 2.8-5 6-5s5.4 1.8 6 5\\\"/><path d=\\\"M15 17.2l2.5 2.5 4.2-4.7\\\"/>\"} as RegisteredIcon,\n {\"name\":\"user-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"9\\\"/><circle cx=\\\"12\\\" cy=\\\"10\\\" r=\\\"3\\\"/><path d=\\\"M6.5 18.2c1-2.2 3-3.4 5.5-3.4s4.5 1.2 5.5 3.4\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"user-plus\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M2.5 20c.7-3.4 3.3-5.5 6.5-5.5s5.2 1.4 6 3.5\\\"/><path d=\\\"M18 11v6M15 14h6\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"users\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M2.5 20c.7-3.4 3.3-5.5 6.5-5.5s5.8 2.1 6.5 5.5\\\"/><path d=\\\"M15.5 4.8a3.3 3.3 0 0 1 0 6.4M17.5 14.7c2 .5 3.3 2.3 4 5.3\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"view-columns\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4\\\" width=\\\"17\\\" height=\\\"16\\\" rx=\\\"2.5\\\"/><path d=\\\"M9.2 4v16M14.8 4v16\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"world\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><ellipse cx=\\\"12\\\" cy=\\\"12\\\" rx=\\\"3.5\\\" ry=\\\"8.5\\\"/><path d=\\\"M3.5 12h17\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n];\n","import { DOCUMENT } from '@angular/common';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport {\n HERMES_SIDEBAR_CONFIG,\n HERMES_THEME_CONFIG,\n HERMES_WORKSPACE_PERSISTENCE_CONFIG,\n provideHermesIconLoader,\n provideHermesIcons,\n} from '@trismegisto/angular';\nimport { DEFAULT_THEME_CONFIG, extendThemeConfig } from '@trismegisto/primitives';\nimport { ThemeService } from './theme.service';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\nimport { applySpineFavicon } from './brand';\nimport { SPINE_ICONS } from './icons.generated';\n\n/**\n * Bootstrap do spine: tema, favicon, prefixo de armazenamento do app e ícones.\n *\n * Ícones (desde a 3.3.1): registra no bootstrap só `SPINE_ICONS` — os que o próprio spine desenha (header,\n * menu, configurações, auto-serviço...; gerado por `scripts/generate-spine-icons.mjs`) — e pede o catálogo\n * inteiro sob demanda (`provideHermesIconLoader`), num chunk à parte baixado logo depois do bootstrap. Assim o\n * bundle inicial não leva os ~900 desenhos (~212 kB), e um ícone que o APP usa sem registrar (o ícone da rota que\n * vem do servidor, um `[icon]` de botão) continua aparecendo: até o chunk chegar desenha o genérico, e o\n * `hm-icon` redesenha sozinho. App que registra os próprios ícones (`provideHermesIcons(...)`) não muda nada.\n */\nexport function provideUi(config?: SpineConfig): EnvironmentProviders {\n // Apps diferentes moram na MESMA origem (mesmo domínio, caminhos distintos): sem prefixo próprio,\n // tema, família, densidade, menu lateral e abas de um app vazam pro outro. Cada app usa o seu\n // `clientId` como prefixo de TODAS as chaves de armazenamento.\n const ns = config?.clientId ? `hermes_${config.clientId}` : null;\n // Famílias do app (`config.theme`) compostas sobre as padrão, já com o prefixo do app.\n const themeConfig =\n ns || config?.theme\n ? extendThemeConfig({ ...DEFAULT_THEME_CONFIG, storagePrefix: ns ?? DEFAULT_THEME_CONFIG.storagePrefix }, config?.theme)\n : null;\n return makeEnvironmentProviders([\n provideHermesIcons(SPINE_ICONS),\n provideHermesIconLoader(() => import('@trismegisto/icons/catalog').then((m) => m.HERMES_ICONS)),\n provideAppInitializer(() => {\n inject(ThemeService);\n // Favicon só quando configurado: sem `favicon`, o `<link rel=\"icon\">` do index.html fica como está.\n if (config?.favicon) applySpineFavicon(inject(DOCUMENT), config.favicon);\n }),\n ...(config ? [{ provide: SPINE_CONFIG, useValue: config }] : []),\n ...(themeConfig ? [{ provide: HERMES_THEME_CONFIG, useValue: themeConfig }] : []),\n ...(ns\n ? [\n { provide: HERMES_SIDEBAR_CONFIG, useValue: { storageKey: `${ns}_sidebar` } },\n { provide: HERMES_WORKSPACE_PERSISTENCE_CONFIG, useValue: { storagePrefix: ns } },\n ]\n : []),\n ]);\n}\n","import { InjectionToken } from '@angular/core';\n\n/** Dados do `package.json` do app (nome, versão, dependências...), passados em\n * `provideShell({ packageInfo })`. Mora no pacote raiz (e não em `@trismegisto/spine/shell`, onde\n * nasceu) porque o painel de configurações do `@trismegisto/spine/layout` também lê — e o shell\n * importa o layout, então o layout importar o shell fecharia um ciclo. O shell reexporta o\n * MESMO token (mesma instância), então quem importava de lá continua funcionando. */\nexport interface PackageInfo {\n name?: string;\n version?: string;\n description?: string;\n license?: string;\n buildDate?: string;\n environment?: string;\n repository?: { url?: string };\n developer?: { name?: string; homepage?: string; email?: string };\n docs?: string;\n issues?: string;\n dependencies?: Record<string, string>;\n [key: string]: any;\n}\n\nexport const APP_PACKAGE_INFO = new InjectionToken<PackageInfo>('APP_PACKAGE_INFO');\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, NgZone, PLATFORM_ID, computed, effect, inject, signal, untracked } from '@angular/core';\nimport { SPINE_CONFIG } from './app-config.token';\nimport { HermesI18nService, HermesMotionService, HermesShortcutService, HermesZoomService } from '@trismegisto/angular';\nimport { HermesMotionPreference, TimeHourCycle, Weekday, normalizeMotionPreference, normalizeTextScale } from '@trismegisto/primitives';\n\n/** Chaves por app (prefixo = `clientId`, mesmo do tema): apps diferentes na mesma origem não\n * compartilham preferências. Sem `SPINE_CONFIG`, cai no prefixo genérico `hermes`. */\nconst TIME_ZONE_SUFFIX = 'time_zone';\nconst LANGUAGE_SUFFIX = 'language';\nconst CHARACTER_KEYS_SUFFIX = 'shortcut_character_keys';\nconst TEXT_SCALE_SUFFIX = 'text_scale';\nconst MOTION_SUFFIX = 'motion';\nconst HOUR_CYCLE_SUFFIX = 'hour_cycle';\nconst WEEK_START_SUFFIX = 'week_start';\nconst IDLE_SUFFIX = 'idle_minutes';\nconst START_PAGE_SUFFIX = 'start_page';\nconst NOTICES_SUFFIX = 'notices';\nconst BROWSER_NOTICES_SUFFIX = 'browser_notices';\n\n/** Minutos de inatividade oferecidos em \"Encerrar por inatividade\" (0 = nunca). */\nexport const SPINE_IDLE_OPTIONS: readonly number[] = [0, 5, 15, 30, 60];\n\n/**\n * Tela inicial depois do login: `home` (a padrão do app), `last` (a última visitada) ou `fav:<id>` (um favorito,\n * pelo `id` do `SpineQuickAccessService`).\n */\nexport type SpineStartPagePreference = 'home' | 'last' | `fav:${string}`;\n\n/** Relógio escolhido em Região: vazio = o do idioma. */\nexport type SpineHourCyclePreference = '' | TimeHourCycle;\n/** Primeiro dia da semana escolhido em Região: `null` = o do idioma. */\nexport type SpineWeekStartPreference = Weekday | null;\nconst CHANNEL_BASE = 'spine_preferences';\n\n/**\n * Preferências do usuário que não são de tema (tema/família/densidade continuam no\n * `HermesThemeService`; modo do menu lateral no `HermesSidebarService`): fuso horário, idioma, relógio de\n * 12/24 h e primeiro dia da semana (`HermesI18nService.setRegionalFormat`), tamanho do texto\n * (`HermesZoomService.setTextScale`), movimento (`HermesMotionService.setPreference`) e o interruptor dos\n * atalhos de tecla única (WCAG 2.1.4) do `HermesShortcutService`.\n *\n * Também guarda as preferências dos recursos opcionais (`SpineFeatures`): minutos de inatividade, tela inicial,\n * tipos de aviso ligados e o aviso do navegador.\n *\n * Vive no navegador (localStorage, sincronizado entre abas). Com `SpineFeatures.accountPreferences`, o\n * `SpineAccountPreferencesService` (`@trismegisto/spine/layout`) espelha estes valores na conta do Argos e os aplica\n * pelos mesmos `set*` no login: quem lê `timeZone()` não precisa saber de onde o valor veio.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpinePreferencesService {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly zone = inject(NgZone);\n private readonly ns = inject(SPINE_CONFIG, { optional: true })?.clientId;\n private readonly timeZoneKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${TIME_ZONE_SUFFIX}`;\n private readonly languageKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${LANGUAGE_SUFFIX}`;\n private readonly characterKeysKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${CHARACTER_KEYS_SUFFIX}`;\n private readonly textScaleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${TEXT_SCALE_SUFFIX}`;\n private readonly motionKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${MOTION_SUFFIX}`;\n private readonly hourCycleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${HOUR_CYCLE_SUFFIX}`;\n private readonly weekStartKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${WEEK_START_SUFFIX}`;\n private readonly shortcuts = inject(HermesShortcutService);\n private readonly i18n = inject(HermesI18nService);\n private readonly zoom = inject(HermesZoomService);\n private readonly motionService = inject(HermesMotionService);\n /** Idioma com que o app subiu (`provideHermesI18n`) — vale quando a pessoa não escolheu nenhum. */\n readonly appLanguage = this.i18n.locale();\n private readonly channel: BroadcastChannel | null = this.browser && typeof BroadcastChannel !== 'undefined'\n ? new BroadcastChannel(this.ns ? `${CHANNEL_BASE}_${this.ns}` : CHANNEL_BASE)\n : null;\n\n /** Fuso escolhido (IANA, ex.: \"America/Sao_Paulo\"). Vazio = o do navegador. */\n readonly timeZone = signal(this.read(this.timeZoneKey));\n\n /** Fuso do navegador, para mostrar ao lado da opção \"automático\". */\n readonly browserTimeZone = this.browser ? Intl.DateTimeFormat().resolvedOptions().timeZone : 'UTC';\n\n /** O fuso que vale de fato: o escolhido ou, sem escolha, o do navegador. */\n readonly effectiveTimeZone = computed(() => this.timeZone() || this.browserTimeZone);\n\n /** Idioma escolhido (BCP 47: `pt-BR`, `en`, `es`). Vazio = o padrão do app. */\n readonly language = signal(this.read(this.languageKey));\n\n /**\n * Atalhos de tecla única (`?`, `G H`) ligados — WCAG 2.1.4. Guardado por app (`'on'`/`'off'`);\n * sem escolha salva, vale o padrão do `HermesShortcutService` (`provideHermesShortcuts`).\n */\n readonly characterKeys = signal(this.readCharacterKeys());\n\n /** Tamanho do texto (1 = 100%; os oferecidos em `HERMES_TEXT_SCALES`). */\n readonly textScale = signal(normalizeTextScale(this.read(this.textScaleKey)));\n\n /** Movimento: `system` segue o `prefers-reduced-motion`; `reduce` sempre reduz; `full` nunca. */\n readonly motion = signal<HermesMotionPreference>(normalizeMotionPreference(this.read(this.motionKey)));\n\n /** Relógio: `h23` (24 horas), `h12` (12 horas) ou vazio (o do idioma). */\n readonly hourCycle = signal<SpineHourCyclePreference>(toHourCycle(this.read(this.hourCycleKey)));\n\n /** Primeiro dia da semana (0 = domingo, 1 = segunda) ou `null` (o do idioma). */\n readonly weekStart = signal<SpineWeekStartPreference>(toWeekStart(this.read(this.weekStartKey)));\n\n private readonly idleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${IDLE_SUFFIX}`;\n private readonly startPageKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${START_PAGE_SUFFIX}`;\n private readonly noticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${NOTICES_SUFFIX}`;\n private readonly browserNoticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${BROWSER_NOTICES_SUFFIX}`;\n\n /** Encerrar a sessão depois de tantos minutos sem uso (0 = nunca). Os limites do app (`SpineFeatures.idleTimeout`)\n * são aplicados por quem usa o valor (`SpineIdleService`), não aqui. */\n readonly idleMinutes = signal(toIdleMinutes(this.read(this.idleKey)));\n\n /** Tela que abre depois do login. */\n readonly startPage = signal<SpineStartPagePreference>(toStartPage(this.read(this.startPageKey)));\n\n /** Tipos de aviso que a pessoa ligou/desligou (`id` → ligado); tipo ausente segue o `defaultEnabled` dele. */\n readonly noticeTypes = signal<Readonly<Record<string, boolean>>>(toNoticeTypes(this.read(this.noticesKey)));\n\n /** Aviso do navegador (Notification API) quando a aba está em segundo plano. */\n readonly browserNotices = signal(this.read(this.browserNoticesKey) === 'on');\n\n /** Idiomas oferecidos na configuração, cada um com o nome no próprio idioma (padrão de mercado). */\n readonly languages: readonly { readonly value: string; readonly label: string }[] = [\n // check-strings: off — cada idioma escrito no próprio idioma (padrão de mercado), igual em todo catálogo.\n { value: 'pt-BR', label: 'Português (Brasil)' },\n { value: 'en', label: 'English' },\n { value: 'es', label: 'Español' },\n // check-strings: on\n ];\n\n constructor() {\n if (this.channel) {\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'TIME_ZONE_CHANGED') this.timeZone.set(e.data.value ?? '');\n if (e.data?.type === 'LANGUAGE_CHANGED') this.applyLanguage(e.data.value ?? '');\n if (e.data?.type === 'CHARACTER_KEYS_CHANGED') this.applyCharacterKeys(e.data.value !== false);\n if (e.data?.type === 'TEXT_SCALE_CHANGED') this.applyTextScale(normalizeTextScale(e.data.value));\n if (e.data?.type === 'MOTION_CHANGED') this.applyMotion(normalizeMotionPreference(e.data.value));\n if (e.data?.type === 'HOUR_CYCLE_CHANGED') this.applyRegionalFormat(toHourCycle(e.data.value), this.weekStart());\n if (e.data?.type === 'WEEK_START_CHANGED') this.applyRegionalFormat(this.hourCycle(), toWeekStart(e.data.value));\n if (e.data?.type === 'IDLE_CHANGED') this.idleMinutes.set(toIdleMinutes(e.data.value));\n if (e.data?.type === 'START_PAGE_CHANGED') this.startPage.set(toStartPage(e.data.value));\n if (e.data?.type === 'NOTICES_CHANGED') this.noticeTypes.set(toNoticeTypes(JSON.stringify(e.data.value ?? {})));\n if (e.data?.type === 'BROWSER_NOTICES_CHANGED') this.browserNotices.set(e.data.value === true);\n });\n }\n // Escolha salva vale desde a primeira tela (o layout injeta este serviço no boot).\n if (this.language()) this.i18n.setLocale(this.language());\n if (this.textScale() !== 1) this.zoom.setTextScale(this.textScale());\n if (this.motion() !== 'system') this.motionService.setPreference(this.motion());\n if (this.hourCycle() || this.weekStart() !== null) this.applyRegionalFormat(this.hourCycle(), this.weekStart());\n if (this.characterKeys() !== this.shortcuts.characterKeys()) this.shortcuts.setCharacterKeys(this.characterKeys());\n // O interruptor do hm-shortcut-list fala direto com o HermesShortcutService: a mudança que vier\n // de lá (e não deste serviço) é guardada e avisada às outras abas aqui.\n effect(() => {\n const enabled = this.shortcuts.characterKeys();\n if (enabled !== untracked(this.characterKeys)) this.saveCharacterKeys(enabled);\n });\n }\n\n /** Liga/desliga os atalhos de tecla única na hora, guarda e avisa as outras abas. */\n setCharacterKeys(enabled: boolean): void {\n this.shortcuts.setCharacterKeys(enabled);\n this.saveCharacterKeys(enabled);\n }\n\n private saveCharacterKeys(enabled: boolean): void {\n this.characterKeys.set(enabled);\n this.write(this.characterKeysKey, enabled ? 'on' : 'off');\n this.channel?.postMessage({ type: 'CHARACTER_KEYS_CHANGED', value: enabled });\n }\n\n private applyCharacterKeys(enabled: boolean): void {\n this.characterKeys.set(enabled);\n this.shortcuts.setCharacterKeys(enabled);\n }\n\n private readCharacterKeys(): boolean {\n const saved = this.read(this.characterKeysKey);\n return saved ? saved !== 'off' : this.shortcuts.characterKeys();\n }\n\n /** Troca o idioma da lib e do spine na hora, guarda e avisa as outras abas. Vazio = padrão do app. */\n setLanguage(value: string): void {\n this.applyLanguage(value);\n this.write(this.languageKey, value);\n this.channel?.postMessage({ type: 'LANGUAGE_CHANGED', value });\n }\n\n private applyLanguage(value: string): void {\n this.language.set(value);\n this.i18n.setLocale(value || this.appLanguage);\n }\n\n /** Tamanho do texto na hora (1 = 100%), guarda e avisa as outras abas. */\n setTextScale(value: number): void {\n const scale = normalizeTextScale(value);\n this.applyTextScale(scale);\n this.write(this.textScaleKey, scale === 1 ? '' : String(scale));\n this.channel?.postMessage({ type: 'TEXT_SCALE_CHANGED', value: scale });\n }\n\n private applyTextScale(scale: number): void {\n this.textScale.set(scale);\n this.zoom.setTextScale(scale);\n }\n\n /** Movimento na hora (`system`/`reduce`/`full`), guarda e avisa as outras abas. */\n setMotion(value: HermesMotionPreference): void {\n const motion = normalizeMotionPreference(value);\n this.applyMotion(motion);\n this.write(this.motionKey, motion === 'system' ? '' : motion);\n this.channel?.postMessage({ type: 'MOTION_CHANGED', value: motion });\n }\n\n private applyMotion(motion: HermesMotionPreference): void {\n this.motion.set(motion);\n this.motionService.setPreference(motion);\n }\n\n /** Relógio na hora (`h23`/`h12`; vazio = o do idioma), guarda e avisa as outras abas. */\n setHourCycle(value: SpineHourCyclePreference): void {\n const cycle = toHourCycle(value);\n this.applyRegionalFormat(cycle, this.weekStart());\n this.write(this.hourCycleKey, cycle);\n this.channel?.postMessage({ type: 'HOUR_CYCLE_CHANGED', value: cycle });\n }\n\n /** Primeiro dia da semana na hora (0 = domingo, 1 = segunda; `null` = o do idioma), guarda e avisa. */\n setWeekStart(value: SpineWeekStartPreference): void {\n const day = toWeekStart(value);\n this.applyRegionalFormat(this.hourCycle(), day);\n this.write(this.weekStartKey, day === null ? '' : String(day));\n this.channel?.postMessage({ type: 'WEEK_START_CHANGED', value: day });\n }\n\n private applyRegionalFormat(hourCycle: SpineHourCyclePreference, weekStart: SpineWeekStartPreference): void {\n this.hourCycle.set(hourCycle);\n this.weekStart.set(weekStart);\n this.i18n.setRegionalFormat({ hourCycle: hourCycle || null, firstDayOfWeek: weekStart });\n }\n\n /** Minutos sem uso até encerrar a sessão (0 = nunca), guarda e avisa as outras abas. */\n setIdleMinutes(value: number): void {\n const minutes = toIdleMinutes(value);\n this.idleMinutes.set(minutes);\n this.write(this.idleKey, minutes ? String(minutes) : '');\n this.channel?.postMessage({ type: 'IDLE_CHANGED', value: minutes });\n }\n\n /** Tela inicial depois do login, guarda e avisa as outras abas. */\n setStartPage(value: SpineStartPagePreference): void {\n const page = toStartPage(value);\n this.startPage.set(page);\n this.write(this.startPageKey, page === 'home' ? '' : page);\n this.channel?.postMessage({ type: 'START_PAGE_CHANGED', value: page });\n }\n\n /** Liga/desliga um tipo de aviso, guarda e avisa as outras abas. */\n setNoticeType(id: string, enabled: boolean): void {\n this.setNoticeTypes({ ...this.noticeTypes(), [id]: enabled });\n }\n\n /** Troca o mapa inteiro de tipos de aviso (restaurar, sincronização com a conta). */\n setNoticeTypes(value: Readonly<Record<string, boolean>>): void {\n const types = toNoticeTypes(JSON.stringify(value ?? {}));\n this.noticeTypes.set(types);\n this.write(this.noticesKey, Object.keys(types).length ? JSON.stringify(types) : '');\n this.channel?.postMessage({ type: 'NOTICES_CHANGED', value: types });\n }\n\n /** Liga/desliga o aviso do navegador, guarda e avisa as outras abas (a permissão é pedida por quem chama). */\n setBrowserNotices(enabled: boolean): void {\n this.browserNotices.set(enabled);\n this.write(this.browserNoticesKey, enabled ? 'on' : '');\n this.channel?.postMessage({ type: 'BROWSER_NOTICES_CHANGED', value: enabled });\n }\n\n setTimeZone(value: string): void {\n this.timeZone.set(value);\n this.write(this.timeZoneKey, value);\n this.channel?.postMessage({ type: 'TIME_ZONE_CHANGED', value });\n }\n\n /** Todos os fusos IANA que o navegador conhece (vazio em navegador antigo). */\n supportedTimeZones(): string[] {\n const intl = Intl as unknown as { supportedValuesOf?: (key: string) => string[] };\n try {\n return intl.supportedValuesOf?.('timeZone') ?? [];\n } catch {\n return [];\n }\n }\n\n private read(key: string): string {\n if (!this.browser) return '';\n try { return localStorage.getItem(key) ?? ''; } catch { return ''; }\n }\n\n private write(key: string, value: string): void {\n if (!this.browser) return;\n try {\n if (value) localStorage.setItem(key, value);\n else localStorage.removeItem(key);\n } catch { /* storage indisponível */ }\n }\n}\n\nfunction toIdleMinutes(value: unknown): number {\n const minutes = Number(value);\n return Number.isInteger(minutes) && minutes > 0 && minutes <= 24 * 60 ? minutes : 0;\n}\n\nfunction toStartPage(value: unknown): SpineStartPagePreference {\n if (value === 'last') return 'last';\n if (typeof value === 'string' && value.startsWith('fav:') && value.length > 4 && value.length <= 500) return value as `fav:${string}`;\n return 'home';\n}\n\n/** Texto JSON salvo → mapa `id` → booleano (o resto é descartado). */\nfunction toNoticeTypes(raw: string): Record<string, boolean> {\n let parsed: unknown;\n try { parsed = raw ? JSON.parse(raw) : {}; } catch { return {}; }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n const out: Record<string, boolean> = {};\n for (const [id, enabled] of Object.entries(parsed as Record<string, unknown>)) {\n if (typeof enabled === 'boolean' && /^[\\w.:-]{1,64}$/.test(id)) out[id] = enabled;\n }\n return out;\n}\n\nfunction toHourCycle(value: unknown): SpineHourCyclePreference {\n return value === 'h12' || value === 'h23' ? value : '';\n}\n\n/** `0`…`6` (número ou texto salvo) → dia da semana; o resto, `null`. */\nfunction toWeekStart(value: unknown): SpineWeekStartPreference {\n if (value === null || value === undefined || value === '') return null;\n const day = Number(value);\n return Number.isInteger(day) && day >= 0 && day <= 6 ? (day as Weekday) : null;\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Base da API do argos-admin-server (ex.: `https://exemplo.com.br/argos/admin/api`) —\n * recursos do próprio usuário (`/me/*`, hoje os tokens de aplicação) que o painel de\n * configurações usa. Quem chama `provideAutoService({ adminApi })` já fornece este token (é a\n * mesma URL); um app sem auto-service fornece direto, ou fica sem as partes do painel que\n * dependem do servidor (elas se escondem em vez de quebrar).\n */\nexport const SPINE_ADMIN_API = new InjectionToken<string>('SPINE_ADMIN_API');\n","import { DestroyRef, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { AuthorizationService } from '@orfeu/angular/core';\nimport { SPINE_CONFIG } from './app-config.token';\n\n/** Listas do shell guardadas no navegador, por usuário. */\nexport const SPINE_USER_STORAGE_KEYS = {\n favorites: 'nav_favorites',\n recents: 'nav_recent',\n recentSearches: 'header_recent_searches',\n /** Última tela visitada, guardada só com a tela inicial \"Última tela visitada\" (`SpineStartPageService`). */\n lastPage: 'start_last_page',\n} as const;\n\nexport type SpineUserStorageKey = (typeof SPINE_USER_STORAGE_KEYS)[keyof typeof SPINE_USER_STORAGE_KEYS];\n\n/** Históricos (o que a pessoa visitou/buscou): apagados no logout. Favoritos ficam (preferência do usuário). */\nconst HISTORY_KEYS: readonly SpineUserStorageKey[] = [SPINE_USER_STORAGE_KEYS.recents, SPINE_USER_STORAGE_KEYS.recentSearches];\n// A última tela (`lastPage`) fica no logout de propósito: é ela que a tela inicial \"Última tela visitada\" abre no\n// próximo login. Só é gravada quando a pessoa escolheu essa opção.\n\n/**\n * Chaves de `localStorage` do shell por usuário: `<clientId>_<lista>_<sub>`, com o `sub` do token da sessão.\n * Num computador compartilhado, uma pessoa não vê os recentes/buscas/favoritos de quem entrou antes.\n *\n * - Sem `sub` (sem sessão, ou app sem `@orfeu/angular`) a chave é a antiga, `<clientId>_<lista>`.\n * - Com `sub`, a chave antiga sem usuário é apagada (era compartilhada entre todas as contas do navegador).\n * - No logout (`clearHistory()`, chamado pelo `SpineLogoutService` só quando o `logout()` deu certo, e o `isAuth$`\n * indo para `false`, que cobre o logout vindo de outra aba) os HISTÓRICOS do usuário saem; os favoritos ficam.\n * Logout que falhou no Argos (`@orfeu/angular` 1.3.x) mantém a sessão e os históricos.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpineUserStorage {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly auth = inject(AuthorizationService, { optional: true });\n private readonly ns = inject(SPINE_CONFIG, { optional: true })?.clientId || 'app';\n private readonly listeners = new Set<() => void>();\n /** Último usuário visto: o token some no logout, mas a limpeza precisa saber de quem era. */\n private lastUser = '';\n\n constructor() {\n const isAuth$ = (this.auth as { isAuth$?: { subscribe(next: (v: boolean) => void): { unsubscribe(): void } } } | null)?.isAuth$;\n if (!this.browser || !isAuth$?.subscribe) return;\n let was = false;\n const sub = isAuth$.subscribe((authenticated) => {\n if (was && !authenticated) this.clearHistory();\n was = authenticated;\n this.notify();\n });\n inject(DestroyRef).onDestroy(() => sub.unsubscribe());\n }\n\n /** `sub` do token da sessão (só leitura do payload); vazio sem sessão. */\n userId(): string {\n let token: string | null | undefined;\n try {\n token = this.auth?.getToken();\n } catch {\n token = null;\n }\n const sub = token ? decodeSub(token) : '';\n if (sub) this.lastUser = sub;\n return sub;\n }\n\n /** Chave de `localStorage` da lista para o usuário atual. */\n key(list: SpineUserStorageKey): string {\n const user = this.userId();\n const legacy = `${this.ns}_${list}`;\n if (!user) return legacy;\n this.dropLegacy(legacy);\n return `${legacy}_${user}`;\n }\n\n /** Apaga buscas recentes e páginas recentes do usuário (o atual ou o último visto). Favoritos ficam. */\n clearHistory(): void {\n if (!this.browser) return;\n const user = this.userId() || this.lastUser;\n for (const list of HISTORY_KEYS) {\n try {\n localStorage.removeItem(user ? `${this.ns}_${list}_${user}` : `${this.ns}_${list}`);\n } catch {\n /* storage indisponível */\n }\n }\n this.notify();\n }\n\n /**\n * Apaga uma lista do usuário atual (Configurações › Dados do navegador): a chave dele, e também a antiga sem\n * usuário. Quem guarda a lista em memória relê (`onChange`).\n */\n clear(list: SpineUserStorageKey): void {\n if (!this.browser) return;\n try {\n localStorage.removeItem(this.key(list));\n localStorage.removeItem(`${this.ns}_${list}`);\n } catch {\n /* storage indisponível */\n }\n this.notify();\n }\n\n /** Quantos itens a lista do usuário atual tem guardados (0 sem nada ou com valor ilegível). */\n count(list: SpineUserStorageKey): number {\n if (!this.browser) return 0;\n try {\n const parsed: unknown = JSON.parse(localStorage.getItem(this.key(list)) ?? '[]');\n return Array.isArray(parsed) ? parsed.length : 0;\n } catch {\n return 0;\n }\n }\n\n /** Avisa quando a sessão muda ou o histórico é limpo (quem guarda a lista em memória relê). */\n onChange(listener: () => void): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n private notify(): void {\n for (const listener of [...this.listeners]) listener();\n }\n\n private dropLegacy(key: string): void {\n if (!this.browser) return;\n try {\n if (localStorage.getItem(key) !== null) localStorage.removeItem(key);\n } catch {\n /* storage indisponível */\n }\n }\n}\n\nfunction decodeSub(token: string): string {\n const payload = token.split('.')[1];\n if (!payload) return '';\n try {\n const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/').padEnd(Math.ceil(payload.length / 4) * 4, '='));\n const sub = (JSON.parse(json) as Record<string, unknown>)['sub'];\n return typeof sub === 'string' ? sub : '';\n } catch {\n return '';\n }\n}\n","import { DestroyRef, Injectable, PLATFORM_ID, WritableSignal, computed, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { SPINE_USER_STORAGE_KEYS, SpineUserStorage } from './user-storage';\n\n/** A page remembered by the shell, either as a favorite or as a recent visit. */\nexport interface QuickAccessItem {\n readonly id: string;\n readonly icon: string;\n readonly displayName: string;\n readonly redirect: string;\n /** Ancestor labels, top-down. `[]` = top-level page; absent = stored by an older version. */\n readonly trail?: readonly string[];\n /** When the page was last opened (epoch ms), for \"12 min ago\" on the home screen. Only on recents. */\n readonly visitedAt?: number;\n}\n\n// The sidebar navigation writes the same history list and trims it to this size; both writers must agree.\nconst RECENT_LIMIT = 10;\n// Reopening the page on top of the list only rewrites its time after this long.\nconst VISIT_REFRESH_MS = 60_000;\n\ntype ListState = WritableSignal<readonly QuickAccessItem[]>;\n\n/**\n * Favorites and recently visited pages, shared by every consumer in the app (page bar, home screen)\n * and persisted per client and per user in `localStorage` (`SpineUserStorage`: `<clientId>_nav_favorites_<sub>`).\n * Recents are cleared on logout; switching users reloads both lists.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpineQuickAccessService {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly storage = inject(SpineUserStorage);\n private readonly favoriteList: ListState = signal<readonly QuickAccessItem[]>([]);\n private readonly recentList: ListState = signal<readonly QuickAccessItem[]>([]);\n\n readonly favorites = this.favoriteList.asReadonly();\n readonly recents = this.recentList.asReadonly();\n\n private readonly favoriteSet = computed(() => new Set(this.favoriteList().map((item) => item.id)));\n\n constructor() {\n if (!this.browser) return;\n\n this.reload();\n\n const onStorage = (event: StorageEvent) => {\n if (event.key === this.favoritesKey) this.favoriteList.set(this.load(this.favoritesKey));\n else if (event.key === this.recentsKey) this.recentList.set(this.load(this.recentsKey));\n };\n window.addEventListener('storage', onStorage);\n // Sessão mudou (logout, outra conta) ou histórico limpo: relê as listas do usuário atual.\n const stop = this.storage.onChange(() => this.reload());\n inject(DestroyRef).onDestroy(() => {\n window.removeEventListener('storage', onStorage);\n stop();\n });\n }\n\n private get favoritesKey(): string {\n return this.storage.key(SPINE_USER_STORAGE_KEYS.favorites);\n }\n\n private get recentsKey(): string {\n return this.storage.key(SPINE_USER_STORAGE_KEYS.recents);\n }\n\n private reload(): void {\n this.favoriteList.set(this.load(this.favoritesKey));\n this.recentList.set(this.load(this.recentsKey));\n }\n\n isFavorite(id: string | null | undefined): boolean {\n return !!id && this.favoriteSet().has(id);\n }\n\n toggleFavorite(item: QuickAccessItem): void {\n const current = this.favoriteList();\n const next = current.some((f) => f.id === item.id) ? current.filter((f) => f.id !== item.id) : [...current, item];\n this.commit(this.favoriteList, this.favoritesKey, next);\n }\n\n /** Troca a lista de favoritos inteira (sincronização com a conta). Itens inválidos ou repetidos são descartados. */\n setFavorites(items: readonly unknown[]): void {\n const seen = new Set<string>();\n const next = items.flatMap((entry) => {\n const item = normalize(entry);\n if (!item || seen.has(item.id)) return [];\n seen.add(item.id);\n return [item];\n });\n this.commit(this.favoriteList, this.favoritesKey, next);\n }\n\n recordVisit(item: QuickAccessItem): void {\n const current = this.recentList();\n const top = current[0];\n const visited = { ...item, visitedAt: Date.now() };\n // Same page again: only the time moves (and only when it is stale, so a re-render does not rewrite storage).\n if (top && top.id === item.id && top.displayName === item.displayName && sameTrail(top.trail, item.trail)) {\n if (top.visitedAt && visited.visitedAt - top.visitedAt < VISIT_REFRESH_MS) return;\n this.commit(this.recentList, this.recentsKey, [visited, ...current.slice(1)]);\n return;\n }\n const next = [visited, ...current.filter((r) => r.id !== item.id)].slice(0, RECENT_LIMIT);\n this.commit(this.recentList, this.recentsKey, next);\n }\n\n forgetRecent(id: string): void {\n this.commit(this.recentList, this.recentsKey, this.recentList().filter((r) => r.id !== id));\n }\n\n private commit(state: ListState, key: string, items: readonly QuickAccessItem[]): void {\n state.set(items);\n if (!this.browser) return;\n try {\n localStorage.setItem(key, JSON.stringify(items));\n } catch {\n // Quota exceeded or storage blocked: the in-memory list stays authoritative for this session.\n }\n }\n\n private load(key: string): readonly QuickAccessItem[] {\n let parsed: unknown;\n try {\n const raw = localStorage.getItem(key);\n if (raw == null) return [];\n parsed = JSON.parse(raw);\n } catch {\n return [];\n }\n if (!Array.isArray(parsed)) return [];\n return parsed.flatMap((entry) => {\n const item = normalize(entry);\n return item ? [item] : [];\n });\n }\n}\n\nfunction normalize(entry: unknown): QuickAccessItem | null {\n if (!entry || typeof entry !== 'object') return null;\n const raw = entry as Record<string, unknown>;\n if (typeof raw['redirect'] !== 'string' || !raw['redirect']) return null;\n const redirect = raw['redirect'];\n const item: { -readonly [K in keyof QuickAccessItem]: QuickAccessItem[K] } = {\n id: typeof raw['id'] === 'string' && raw['id'] ? raw['id'] : redirect,\n icon: typeof raw['icon'] === 'string' ? raw['icon'] : '',\n displayName: typeof raw['displayName'] === 'string' ? raw['displayName'] : '',\n redirect,\n };\n if (Array.isArray(raw['trail'])) item.trail = raw['trail'].filter((t): t is string => typeof t === 'string');\n if (typeof raw['visitedAt'] === 'number' && Number.isFinite(raw['visitedAt'])) item.visitedAt = raw['visitedAt'];\n return item;\n}\n\nfunction sameTrail(a: readonly string[] | undefined, b: readonly string[] | undefined): boolean {\n const left = a ?? [];\n const right = b ?? [];\n return left.length === right.length && left.every((label, i) => label === right[i]);\n}\n","/**\n * O mínimo do `environment` de um app que dá pra derivar em tempo de execução. Estrutural de\n * propósito (não importa o `Environment` de nenhum app): serve pra todos.\n */\nexport interface RuntimeEnvironmentShape {\n authorizationServer: { authority?: string; redirectUrl?: string; postLogoutRedirectUri?: string };\n graphql?: Record<string, { http: string; ws?: string }>;\n}\n\nexport interface RuntimeEnvironmentInfo {\n /** `window.location.origin`. */\n readonly origin: string;\n /** Prefixo do app (base href sem a barra final), ex.: `/app-exemplo`. Vazio na raiz. */\n readonly basePath: string;\n /** Sem porta na URL: o app está atrás do proxy (Caddy), não na porta direta do container. */\n readonly behindProxy: boolean;\n /** URL ainda sem valor real (vazia ou `CHANGE_ME`) — a única que pode ser derivada. */\n readonly unset: (url: string | undefined) => boolean;\n}\n\n/**\n * Ajusta o `environment` ao lugar onde o app está rodando — chamar no `main.ts`, ANTES do\n * `bootstrapApplication` e DEPOIS do `loadRuntimeConfig` (que traz o `config.json` do deploy: o que ele definir\n * explicitamente não é derivado aqui). Antes cada app tinha a sua versão (só o Hefesto derivava as URLs); agora a\n * regra é uma só:\n *\n * - **Sempre:** `redirectUrl`/`postLogoutRedirectUri` = origem + prefixo atual. O servidor exige\n * `redirect_uri` absoluto e o app pode viver sob um prefixo (`/app-exemplo`); um valor fixo no\n * environment não bate com a rota real e o callback nunca casa.\n * - **Atrás do proxy (sem porta na URL):**\n * - `authority` = `<origem>/argos` — mesmo domínio da página, senão o cookie de sessão sai com o\n * escopo errado e a sessão não persiste (bug já visto no argos);\n * - cada endpoint GraphQL **ainda sem valor real** vira `<origem><prefixo>/graphql` (HTTP e WS —\n * o WebSocket atende no mesmo caminho do HTTP em todo GraphQL do astra). URL explícita no\n * environment sempre ganha: em prod o front pode estar num domínio e o backend em outro.\n *\n * Devolve `origin`/`basePath`/`behindProxy`/`unset` pro que for específico do app (ex.: a URL da\n * API REST do hefesto-server).\n */\nexport function applyRuntimeEnvironment(environment: RuntimeEnvironmentShape): RuntimeEnvironmentInfo {\n const basePath = new URL(document.baseURI).pathname.replace(/\\/$/, '');\n const origin = window.location.origin;\n const behindProxy = !window.location.port;\n const unset = (url: string | undefined): boolean => !url || url.includes('CHANGE_ME');\n\n environment.authorizationServer.redirectUrl = `${origin}${basePath}/callback`;\n environment.authorizationServer.postLogoutRedirectUri = `${origin}${basePath}/logoff`;\n\n if (behindProxy) {\n environment.authorizationServer.authority = `${origin}/argos`;\n for (const endpoint of Object.values(environment.graphql ?? {})) {\n if (unset(endpoint.http)) {\n endpoint.http = `${origin}${basePath}/graphql`;\n endpoint.ws = `${origin.replace(/^http/, 'ws')}${basePath}/graphql`;\n }\n }\n }\n\n return { origin, basePath, behindProxy, unset };\n}\n","import { PluralMessage } from '@trismegisto/primitives';\n\n/**\n * Textos do próprio spine (cabeçalho, navegação, configurações, configuração inicial, telas do auto-serviço…), no\n * mesmo formato do `HermesMessages` da lib: seção → chave, parâmetros nomeados (`{name}`) e plural\n * por `PluralMessage`. Alguns textos levam marcação simples (`<b>`, `<strong>`, `<code>`) e são\n * exibidos com `[innerHTML]` — estão indicados no comentário. Os que têm parâmetro saem por\n * `formatMessageHtml` (`@trismegisto/primitives`), que escapa o valor (o `check-strings` reprova `fmt` ali).\n *\n * O idioma ativo é o do `HermesI18nService` da lib: `setLocale` troca a lib e o spine juntos.\n */\nexport interface SpineMessages {\n meta: { locale: string };\n /** Central de notificações (o sino do cabeçalho): as novidades das fontes registradas (`provideSpineInboxSource`). */\n inbox: {\n title: string;\n /** Nome do sino, com quantos itens têm novidade. */\n button: PluralMessage;\n empty: string;\n error: string;\n retry: string;\n /** \"3 novidades\" num item que junta várias. */\n news: PluralMessage;\n };\n header: {\n home: string;\n apps: string;\n themeDark: string;\n themeLight: string;\n densityComfortable: string;\n densityCompact: string;\n fullscreen: string;\n exitFullscreen: string;\n user: string;\n accessLevels: string;\n settings: string;\n appearance: string;\n shortcuts: string;\n news: string;\n /** \"Novidades\" no menu do perfil com as não vistas: `{label}` e `{count}`. */\n newsUnseen: string;\n logout: string;\n search: string;\n searchPlaceholder: string;\n /** Grupos da busca (paleta): com o campo vazio, só favoritos, abertos há pouco e módulos. */\n searchFavorites: string;\n searchRecent: string;\n searchModules: string;\n searchScreens: string;\n };\n navigation: {\n back: string;\n home: string;\n favorite: string;\n unfavorite: string;\n copyLink: string;\n linkCopied: string;\n };\n sidebar: {\n modules: string;\n /** `{module}` = nome do módulo aberto. */\n moduleNavigation: string;\n apps: string;\n };\n pageBar: {\n favorite: string;\n unfavorite: string;\n copyLink: string;\n linkCopied: string;\n docs: string;\n trail: string;\n };\n pagePanel: {\n notFoundTitle: string;\n notFoundText: string;\n };\n docs: {\n heading: string;\n index: string;\n search: string;\n noMatch: string;\n empty: string;\n view: string;\n usage: string;\n technical: string;\n loading: string;\n loadError: string;\n /** Convite no lado da leitura enquanto nenhuma página do índice foi aberta. */\n invite: string;\n };\n /** Novidades: painel lateral (lista) e o aviso discreto da entrada. */\n news: {\n heading: string;\n close: string;\n /** Selo da novidade ainda não vista. */\n unseen: string;\n /** Aviso da entrada com uma novidade. `{title}`. */\n toastOne: string;\n /** Aviso da entrada com várias. `{count}`. */\n toastMany: string;\n see: string;\n loading: string;\n empty: string;\n /** A lista não veio (rede, servidor); com `retry`. */\n loadError: string;\n retry: string;\n /** Nome acessível da lista de novidades (agrupada por mês). */\n pages: string;\n /** Busca do painel: rótulo (escondido) e o texto de exemplo. */\n search: string;\n searchPlaceholder: string;\n /** Nome acessível do grupo de filtros em pílula e cada filtro (a contagem vem ao lado). */\n filters: string;\n filterAll: string;\n filterUnread: string;\n filterFavorites: string;\n /** Marcador de cada item. `{title}`. */\n favorite: string;\n unfavorite: string;\n /** Nada passou na busca ou no filtro. */\n noResults: string;\n /** Primeiro degrau da trilha do modal (a tela inicial). */\n home: string;\n /** Implementação: título da lista de mudanças. */\n changes: string;\n /** Alteração: os dois lados da comparação. */\n before: string;\n after: string;\n /** Rodapé do modal. */\n markUnread: string;\n gotIt: string;\n /** Tipo da novidade, na linha de meta do modal. */\n kindInformativo: string;\n kindImplementacao: string;\n kindAlteracao: string;\n /** `{date}`: data da publicação. */\n publishedOn: string;\n /** `{date}`: a novidade foi alterada depois de publicada. */\n editedOn: string;\n /** Nome acessível do texto da novidade (rich text só leitura) no modal. */\n body: string;\n /** A novidade aberta não veio (rede, servidor, saiu do ar). */\n detailError: string;\n };\n /** Auto-serviço, tela Novidades: o que o spine mostra em \"Novidades\" para quem entra no app. */\n autoServiceNews: {\n caption: string;\n empty: string;\n newNews: string;\n editNews: string;\n /** Subtítulo do cabeçalho do editor, ao criar e ao editar. */\n newNewsIntro: string;\n editNewsIntro: string;\n /** Seções numeradas do editor: título e descrição curta de cada uma. */\n sectionMain: string;\n sectionMainHint: string;\n sectionBody: string;\n sectionBodyHint: string;\n sectionPublish: string;\n sectionUntil: string;\n sectionAudience: string;\n /** Prévia ao vivo do card de novidades do Início, no painel lateral do editor. */\n preview: string;\n /** Título e resumo da prévia enquanto os campos estão vazios. */\n previewTitle: string;\n previewSummary: string;\n /** Prévia sem data de publicação: sai ao salvar. */\n previewNow: string;\n /** Dica de uma linha no painel lateral: `tipTitle` em negrito e `tipText` logo depois. */\n tipTitle: string;\n tipText: string;\n /** Rótulo do campo de data da seção de validade. */\n untilDate: string;\n /** Rótulo do campo de grupos da seção de público. */\n audienceGroups: string;\n /** Seletor do tipo de publicação (segmentado, no topo do editor) e cada tipo. */\n kind: string;\n kindInformativo: string;\n kindImplementacao: string;\n kindAlteracao: string;\n /** Descrição da seção de conteúdo na implementação e na alteração (a do informativo é `sectionBodyHint`). */\n sectionBodyHintImpl: string;\n sectionBodyHintAlt: string;\n /** Introdução opcional (rich text) da implementação e da alteração. */\n intro: string;\n /** Lista de mudanças da implementação: rótulo, dica, exemplo do campo e lista vazia. */\n items: string;\n itemsHint: string;\n itemPlaceholder: string;\n itemsEmpty: string;\n /** Alteração: os dois lados (rich text). */\n before: string;\n after: string;\n colTitle: string;\n colPublishedAt: string;\n colUntil: string;\n colAudience: string;\n colAuthor: string;\n colStatus: string;\n statusScheduled: string;\n statusPublished: string;\n statusExpired: string;\n /** Público sem grupo: todos que entram no app. */\n audienceAll: string;\n /** Validade vazia. */\n noUntil: string;\n title: string;\n summary: string;\n summaryHint: string;\n body: string;\n bodyHint: string;\n publishDate: string;\n publishTime: string;\n publishHint: string;\n until: string;\n untilHint: string;\n audience: string;\n audienceHint: string;\n confirmDeleteHeading: string;\n /** `{title}`. */\n confirmDelete: string;\n saveError: string;\n /** A lista não veio (rede, servidor). */\n loadError: string;\n /** Códigos do argos-admin (`{ error }`) e a regra local de datas. */\n errors: {\n invalidTitle: string;\n invalidSummary: string;\n bodyTooLarge: string;\n invalidPublishedAt: string;\n invalidUntil: string;\n invalidGroupIds: string;\n untilBeforePublish: string;\n invalidKind: string;\n invalidItems: string;\n invalidCompare: string;\n compareTooLarge: string;\n };\n };\n /** Configuração inicial em tela cheia (aparência) e \"O essencial\". `*Text` levam `{key}` = tecla. */\n setup: {\n label: string;\n /** `{current}` de `{total}`. */\n step: string;\n skip: string;\n back: string;\n next: string;\n finish: string;\n close: string;\n /** `{name}`: primeiro nome. */\n greeting: string;\n greetingAnonymous: string;\n appearanceIntro: string;\n preview: string;\n previewPage: string;\n essentialsTitle: string;\n essentialsIntro: string;\n searchTitle: string;\n searchText: string;\n tabsTitle: string;\n tabsText: string;\n favoritesTitle: string;\n favoritesText: string;\n settingsTitle: string;\n settingsText: string;\n };\n shortcuts: {\n heading: string;\n /** `{key}` vira a tecla desenhada como chip. */\n hint: string;\n essentials: string;\n dismiss: string;\n openSearch: string;\n goHome: string;\n goFavorite: string;\n history: string;\n openSettings: string;\n toggleTheme: string;\n fullscreen: string;\n logout: string;\n showHelp: string;\n closeOverlay: string;\n };\n settings: {\n heading: string;\n appearance: string;\n appearanceKeywords: string;\n theme: string;\n themeDescription: string;\n themeKeywords: string;\n themeLight: string;\n themeDark: string;\n themeSystem: string;\n accent: string;\n accentDescription: string;\n accentKeywords: string;\n density: string;\n densityDescription: string;\n densityKeywords: string;\n comfortable: string;\n compact: string;\n font: string;\n fontDescription: string;\n fontKeywords: string;\n sidebar: string;\n sidebarDescription: string;\n sidebarKeywords: string;\n /** Detalhe de cada modo do menu lateral (toggletip ao lado do rótulo). */\n sidebarHelp: string;\n sidebarAuto: string;\n sidebarFixed: string;\n sidebarCompact: string;\n region: string;\n regionKeywords: string;\n language: string;\n languageDescription: string;\n languageKeywords: string;\n /** `{language}` = idioma padrão do app. */\n languageAuto: string;\n timeZone: string;\n timeZoneKeywords: string;\n /** `{now}` = data e hora agora no fuso escolhido. */\n timeZoneHint: string;\n /** `{zone}` = fuso detectado no navegador. */\n timeZoneAuto: string;\n /** Formato de hora (Região): automático pelo idioma, 24 ou 12 horas. `{now}` = hora agora no formato. */\n hourCycle: string;\n hourCycleHint: string;\n hourCycleKeywords: string;\n hourCycleAuto: string;\n hourCycle24: string;\n hourCycle12: string;\n /** Primeiro dia da semana (Região); domingo e segunda saem do `Intl`, no idioma. */\n weekStart: string;\n weekStartDescription: string;\n weekStartKeywords: string;\n weekStartAuto: string;\n shortcuts: string;\n shortcutsDescription: string;\n shortcutsKeywords: string;\n setup: string;\n setupDescription: string;\n setupKeywords: string;\n redoSetup: string;\n essentials: string;\n essentialsDescription: string;\n essentialsKeywords: string;\n showEssentials: string;\n /** Seção \"Acessibilidade\" (`?settings=acessibilidade`). */\n accessibility: string;\n accessibilityKeywords: string;\n textSize: string;\n textSizeDescription: string;\n textSizeKeywords: string;\n motion: string;\n motionDescription: string;\n motionKeywords: string;\n motionSystem: string;\n motionReduce: string;\n motionFull: string;\n /** Seção \"Ajuda\" (`?settings=ajuda`): novidades, configuração inicial e o essencial. */\n help: string;\n helpKeywords: string;\n news: string;\n newsDescription: string;\n newsKeywords: string;\n showNews: string;\n /** Seção \"Dados do navegador\" (`?settings=dados`): listas guardadas e restaurar preferências. */\n browserData: string;\n browserDataDescription: string;\n browserDataKeywords: string;\n recentPages: string;\n recentPagesKeywords: string;\n recentSearches: string;\n recentSearchesKeywords: string;\n favorites: string;\n favoritesKeywords: string;\n /** Quantos itens a lista guarda (descrição da linha). */\n pagesCount: PluralMessage;\n searchesCount: PluralMessage;\n clear: string;\n confirmClear: string;\n cancel: string;\n recentPagesCleared: string;\n recentSearchesCleared: string;\n favoritesCleared: string;\n restorePreferences: string;\n restorePreferencesDescription: string;\n /** O que volta ao padrão e o que fica (toggletip ao lado do rótulo). */\n restorePreferencesHelp: string;\n restorePreferencesKeywords: string;\n restore: string;\n confirmRestore: string;\n preferencesRestored: string;\n account: string;\n accountKeywords: string;\n user: string;\n accessLevel: string;\n accessLevelKeywords: string;\n session: string;\n sessionDescription: string;\n sessionKeywords: string;\n sessionUnknown: string;\n /** `{time}` = hora. */\n sessionExpired: string;\n /** `{minutes}` e `{time}`. */\n sessionExpiresIn: string;\n sessionExpiresAt: string;\n accessToken: string;\n accessTokenDescription: string;\n accessTokenKeywords: string;\n copy: string;\n /** Nome acessível do toggletip de ajuda de uma linha; `{label}` é o rótulo da linha. */\n moreAbout: string;\n appTokens: string;\n appTokensDescription: string;\n appTokensKeywords: string;\n /** Detalhe dos tokens de aplicação (toggletip ao lado do rótulo). */\n appTokensHelp: string;\n /** Seção \"Grupos\" (`?settings=grupos`): os grupos desta aplicação de que a pessoa é membro. */\n groups: string;\n groupsDescription: string;\n groupsKeywords: string;\n /** Função e crachá de um grupo (na lista e no topo da tela de membros); `{role}`, `{badge}`. */\n groupRole: string;\n /** O mesmo, para um grupo desativado; `{role}`. */\n groupRoleDisabled: string;\n logout: string;\n logoutDescription: string;\n logoutKeywords: string;\n /** Seção \"MFA\" (`?settings=mfa`; a antiga `seguranca` também abre). */\n mfa: string;\n mfaDescription: string;\n mfaKeywords: string;\n signedInAccount: string;\n /** `{realm}` = realm do Argos (nome ou id, como o app usa no login). */\n signedInRealm: string;\n twoFactor: string;\n twoFactorDescription: string;\n twoFactorKeywords: string;\n recoveryCodes: string;\n recoveryCodesDescription: string;\n recoveryCodesKeywords: string;\n /** Linha \"Sessões e dispositivos\" (dentro da seção Sessões). */\n sessions: string;\n sessionsDescription: string;\n sessionsKeywords: string;\n /** Seção \"Sessões\" (`?settings=sessoes`): sessão, token de acesso, tokens de aplicação, sessões e dispositivos. */\n sessionsSection: string;\n sessionsSectionDescription: string;\n sessionsSectionKeywords: string;\n about: string;\n aboutKeywords: string;\n application: string;\n version: string;\n versionKeywords: string;\n buildDate: string;\n environment: string;\n environmentKeywords: string;\n links: string;\n linksKeywords: string;\n docs: string;\n reportIssue: string;\n repository: string;\n dependencies: string;\n dependenciesDescription: string;\n dependenciesKeywords: string;\n supportInfo: string;\n supportInfoDescription: string;\n supportInfoKeywords: string;\n noSessionToken: string;\n tokenCopied: string;\n supportCopied: string;\n copyBlocked: string;\n };\n /** Rótulos do texto que \"Informações para suporte\" copia. */\n support: {\n application: string;\n version: string;\n build: string;\n environment: string;\n page: string;\n browser: string;\n screen: string;\n theme: string;\n /** `{theme}`, `{mode}`, `{family}`, `{density}`, `{font}`. */\n themeValue: string;\n timeZone: string;\n accessLevel: string;\n date: string;\n };\n appTokens: {\n unavailable: string;\n /** `{name}`. */\n created: string;\n /** `[innerHTML]`; `{date}`. */\n sendHeader: string;\n copyToken: string;\n saved: string;\n loading: string;\n /** `{date}`. */\n expiredOn: string;\n expiresOn: string;\n lastUsed: string;\n never: string;\n revoke: string;\n confirmRevoke: string;\n empty: string;\n noBadges: string;\n /** `[innerHTML]`; `{name}` = aplicação. */\n appOnly: string;\n accessLevel: string;\n name: string;\n namePlaceholder: string;\n nameRequired: string;\n nameMax: string;\n validity: string;\n days30: string;\n days90: string;\n months6: string;\n year1: string;\n create: string;\n cancel: string;\n newToken: string;\n /** `{valid}` de `{max}`. */\n validCount: string;\n limit: string;\n loadError: string;\n badgesError: string;\n createError: string;\n copied: string;\n copyFailed: string;\n /** `{name}`. */\n revoked: string;\n revokeError: string;\n };\n /** Membros de um grupo na seção \"Grupos\" das configurações (argos-admin `/me/groups`). */\n myGroups: {\n loading: string;\n loadError: string;\n /** Nome de cada função no grupo (o Argos guarda Administrador, Editor ou nenhuma). */\n roleAdministrator: string;\n roleEditor: string;\n /** Sem função: o membro comum, que só vê os outros. */\n roleMember: string;\n /** Rótulo acessível da lista de grupos. */\n listLabel: string;\n /** Botão no topo da tela de membros. */\n back: string;\n /** Marca a própria pessoa na lista. */\n you: string;\n membersCount: PluralMessage;\n empty: string;\n /** Aviso de quem é membro sem função. */\n readOnly: string;\n addMember: string;\n /** `{group}`. */\n addHeading: string;\n search: string;\n searchPlaceholder: string;\n searchHint: string;\n searching: string;\n noResults: string;\n searchError: string;\n /** Resultado da busca que já está no grupo. */\n alreadyMember: string;\n role: string;\n /** Editor não escolhe a função. */\n editorAddsMembers: string;\n add: string;\n cancel: string;\n /** `{name}`. */\n added: string;\n addError: string;\n /** Rótulo acessível do seletor de função; `{name}`. */\n roleOf: string;\n /** `{name}`, `{role}`. */\n roleChanged: string;\n roleError: string;\n remove: string;\n confirmRemove: string;\n /** `{name}`. */\n removed: string;\n removeError: string;\n };\n accountSecurity: {\n loading: string;\n loadError: string;\n retry: string;\n methodTotp: string;\n methodEmail: string;\n methodSms: string;\n active: string;\n /** `{detail}` = e-mail mascarado. */\n activeWithDetail: string;\n notRegistered: string;\n unavailable: string;\n requiredHint: string;\n add: string;\n replaceDevice: string;\n remove: string;\n cancel: string;\n confirm: string;\n /** `{method}`. */\n removeTitle: string;\n removeHint: string;\n removeLastHint: string;\n reauthTitle: string;\n reauthHint: string;\n reauthHow: string;\n reauthPassword: string;\n reauthRecoveryCode: string;\n currentPassword: string;\n passwordRequired: string;\n recoveryCode: string;\n recoveryCodePlaceholder: string;\n recoveryCodeRequired: string;\n recoveryCodeLength: string;\n sendEmailCode: string;\n sixDigitCode: string;\n totpTitle: string;\n qrAlt: string;\n manualKey: string;\n appCode: string;\n emailTitle: string;\n email: string;\n emailPlaceholder: string;\n emailRequired: string;\n emailInvalid: string;\n sendCode: string;\n emailCodeTitle: string;\n /** `{email}`. */\n emailCodeHint: string;\n codesRemaining: PluralMessage;\n codesHint: string;\n codesNeedMethod: string;\n generateCodes: string;\n regenerateCodes: string;\n codesTitle: string;\n codesShownOnce: string;\n copyCodes: string;\n downloadCodes: string;\n codesCopied: string;\n copyFailed: string;\n codesSaved: string;\n /** Primeira linha do .txt baixado/copiado. */\n codesFileHeader: string;\n codesFileName: string;\n notices: {\n methodAdded: string;\n deviceReplaced: string;\n methodRemoved: string;\n codesRegenerated: string;\n reauthCodeSent: string;\n };\n /** Por código de erro da API da conta do Argos; `generic` para o resto. */\n errors: {\n generic: string;\n network: string;\n login_required: string;\n invalid_token: string;\n reauthentication_required: string;\n invalid_password: string;\n account_locked: string;\n invalid_code: string;\n invalid_recovery_code: string;\n code_expired: string;\n code_not_requested: string;\n too_many_attempts: string;\n too_many_requests: string;\n mfa_method_not_allowed: string;\n mfa_method_not_found: string;\n mfa_last_method: string;\n invalid_email: string;\n enrollment_not_started: string;\n sms_not_available: string;\n mfa_required_for_recovery_codes: string;\n session_not_found: string;\n };\n sessionsEmpty: string;\n thisSession: string;\n thisBrowser: string;\n appsOnly: string;\n /** `{ip}`, `{date}`. */\n sessionDetail: string;\n unknownIp: string;\n /** `{date}`. */\n sessionSince: string;\n /** `{apps}`. */\n sessionApps: string;\n unnamedApp: string;\n endSession: string;\n confirmEndSession: string;\n endOthers: string;\n endOthersConfirm: PluralMessage;\n sessionEndedNotice: string;\n othersEndedNotice: PluralMessage;\n };\n /**\n * Avaliações (`SpineFeatures.ratings`): nota de 0 a 10 (5 estrelas com meia), o formulário da pessoa, a estrela do\n * cabeçalho, a média em Configurações › Sobre e a tela Avaliações do auto-serviço.\n */\n ratings: {\n /** Botão da barra da página (estrela). */\n rateScreen: string;\n /** Estrela do cabeçalho e título do diálogo: `{app}` = nome do app. */\n rateApp: string;\n /** A mesma estrela depois de avaliar: `{app}`. */\n ratedApp: string;\n heading: string;\n subheading: string;\n /** O que está sendo avaliado, abaixo do título: `{screen}` (caminho legível) e `{app}`. */\n aboutScreen: string;\n aboutApp: string;\n /** Rótulo das estrelas no formulário (nome do slider). */\n score: string;\n /** Nota para o leitor: `{value}` (\"7 de 10\"; média \"8,4 de 10\"). */\n scoreOf: string;\n /** Valor falado do slider: `{value}` e `{name}` (de `scoreNames`). */\n scoreNamed: string;\n /** A nota ao lado das estrelas: `{value}` (\"7/10\"). */\n scoreShort: string;\n /** Rótulo de cada faixa: 1 = 0–2, 2 = 3–4, 3 = 5–6, 4 = 7–8, 5 = 9–10. */\n scoreNames: Record<1 | 2 | 3 | 4 | 5, string>;\n /** Valor falado do slider antes da escolha. */\n noScore: string;\n scaleHint: string;\n comment: string;\n commentPlaceholder: string;\n submit: string;\n update: string;\n /** Já avaliou: `{date}`. */\n previous: string;\n scoreRequired: string;\n loading: string;\n thanks: string;\n updated: string;\n saveError: string;\n // ── Auto-serviço (tela Avaliações) ──\n period: string;\n periods: Record<'all' | 'd7' | 'd30' | 'd90', string>;\n refresh: string;\n appCard: string;\n screensCard: string;\n /** Subtítulos dos KPIs da ferramenta e das telas. */\n appCardHint: string;\n screensCardHint: string;\n /** O \"/10\" menor ao lado da média em destaque. */\n scoreMax: string;\n average: string;\n total: PluralMessage;\n comments: PluralMessage;\n noRatings: string;\n distribution: string;\n /** Coluna do histograma para o leitor: `{score}` (a nota, 0 a 10), `{count}` (de `total`) e `{share}`. */\n distributionRow: string;\n /** Nome das abas Telas / Áreas / Tendências (`ranking`) e o subtítulo antigo do ranking. */\n ranking: string;\n rankingHint: string;\n sort: string;\n sorts: Record<'worst' | 'best' | 'most', string>;\n noScreens: string;\n /** Botão de uma tela no ranking: `{screen}`. */\n filterByScreen: string;\n recent: string;\n recentHint: string;\n filterScope: string;\n allScopes: string;\n tool: string;\n screens: string;\n filterScreen: string;\n allScreens: string;\n filterScore: string;\n allScores: string;\n withComment: string;\n clearFilters: string;\n noComment: string;\n /** Menu ⋮ de uma avaliação: o nome do botão e as ações (copiar o comentário, filtrar pelo alvo). */\n itemActions: string;\n copyComment: string;\n commentCopied: string;\n copyFailed: string;\n showAppRatings: string;\n showScreenRatings: string;\n emptyList: string;\n pagination: string;\n unknownUser: string;\n loadError: string;\n forbidden: string;\n // ── Tela Avaliações: barra da página, KPIs, abas, tabela, tendência e lista curta ──\n /** \"Atualizado em {date} às {time}\" (na barra da página). */\n updatedAt: string;\n /** \"Ver detalhes\" de cada KPI e o complemento para o leitor: `{name}` = o título do KPI. */\n details: string;\n detailsOf: string;\n tabScreens: string;\n tabAreas: string;\n tabTrends: string;\n viewAll: string;\n allHeading: string;\n /** Quando, na lista curta: \"Agora há pouco\", \"Ontem às {time}\", \"{date} às {time}\". */\n justNow: string;\n yesterdayAt: string;\n dateAt: string;\n /** Ordenação curta da tabela. */\n sortsShort: Record<'worst' | 'best' | 'most', string>;\n /** Filtro da faixa da nota: todas, ruim (< 5), média (5 a 6,9), boa (7 ou mais). */\n bands: Record<'all' | 'bad' | 'mid' | 'good', string>;\n bandFilter: string;\n filterArea: string;\n allAreas: string;\n noArea: string;\n /** Linha de uma área: `{area}`. */\n filterByArea: string;\n screensCount: PluralMessage;\n searchScreens: string;\n searchScreensLabel: string;\n searchAreas: string;\n searchAreasLabel: string;\n tableEmpty: string;\n areasEmpty: string;\n colScreen: string;\n colArea: string;\n colScreens: string;\n colScore: string;\n colTotal: string;\n colComments: string;\n colTrend: string;\n /** Cabeçalho (só para o leitor) da coluna do chevron. */\n colOpen: string;\n tablePagination: string;\n areasPagination: string;\n /** Sparkline para o leitor: `{first}` e `{last}` (médias da primeira e da última semana com nota). */\n trendOf: string;\n trendNone: string;\n trendCaption: string;\n trendEmpty: string;\n /** Uma série numa semana: `{series}` e `{value}` (ou `noScore`). */\n trendValue: string;\n /** Dica de uma semana: `{week}` (dd/mm), `{values}` (de `trendValue`, juntos) e `{count}` (de `total`). */\n trendWeek: string;\n // ── Configurações › Sobre (média da ferramenta para qualquer pessoa logada) ──\n aboutRating: string;\n aboutRatingKeywords: string;\n rateAction: string;\n noRatingsYet: string;\n loadingAverage: string;\n averageError: string;\n };\n notification: {\n genericError: string;\n };\n graphql: {\n /** Envelope ausente: o resolver estourou e o campo voltou `null` (`unwrap`). */\n noResponse: string;\n serviceFailure: string;\n done: string;\n failed: string;\n };\n /** Telas de acesso do shell (`/blocked`, `/no-permission`). */\n access: {\n blockedText: string;\n blockedAction: string;\n noRightsText: string;\n };\n /**\n * Retorno do login (`/callback`) e aviso de conexão do shell (`spine-connection-banner`), sobre o\n * `connectionState$`/`reauthorizationRequired$` do `@orfeu/angular`. A sessão nunca cai por isso.\n */\n session: {\n /** Argos inalcançável (sem acesso à rede, servidor fora do ar): a sessão continua, a lib tenta de novo sozinha. */\n offline: string;\n reconnecting: string;\n reauthorizing: string;\n /** O Argos recusou a renovação e a reautorização automática não aconteceu: a pessoa decide. */\n reauthorizationRequired: string;\n signInAgain: string;\n callbackFailedHeading: string;\n callbackFailedText: string;\n /** `logout()` que o Argos não confirmou (o `@orfeu/angular` repetiu uma vez): a sessão continua. */\n logoutFailed: string;\n };\n routing: {\n notPublished: string;\n /** `{code}` = id da rota. */\n notPublishedCode: string;\n };\n home: {\n noAccessTitle: string;\n noAccessText: string;\n yourScreens: string;\n modules: string;\n privileged: string;\n recent: string;\n recentCaption: string;\n screenCount: PluralMessage;\n /** `{name}`. */\n favorite: string;\n unfavorite: string;\n favorites: string;\n /** Saudação pela hora do dia; com o nome, `greetingName` (`{greeting}`, `{name}`). */\n morning: string;\n afternoon: string;\n evening: string;\n greetingName: string;\n intro: string;\n seeAll: string;\n seeLess: string;\n /** `{name}`. Menu de ações de um item de \"Continuar de onde parou\". */\n recentActions: string;\n forgetRecent: string;\n explore: string;\n exploreIntro: string;\n news: string;\n newsBadge: string;\n newsAll: string;\n favoritesEmpty: string;\n help: string;\n shortcuts: string;\n essentials: string;\n settings: string;\n systemDocs: string;\n };\n /** Telas do auto-serviço. Textos com `[innerHTML]` indicados. */\n autoService: {\n loading: string;\n cancel: string;\n save: string;\n create: string;\n edit: string;\n remove: string;\n /** Botão \"Consultar\" ao lado dos seletores de Grupos e Aplicações. */\n search: string;\n active: string;\n inactive: string;\n confirmChanges: string;\n appsTitle: string;\n /** Nome acessível da faixa de abas da tela Cliente (Rotas/Roteadores/Acesso). */\n clientSections: string;\n tabRoutes: string;\n tabRouters: string;\n tabAccess: string;\n /** `[innerHTML]`. Sem client: a pessoa não administra o app em que está logada. */\n noClients: string;\n /** `{status}`. A lista de clients administrados não veio (Argos fora do ar, rede, erro do servidor): não é falta de permissão. */\n clientsLoadError: string;\n retryLoad: string;\n pickClient: string;\n /** Placeholder do seletor de grupo (Grupos, depois do nível de acesso). */\n pickGroup: string;\n noDescription: string;\n manageMembers: string;\n membersCaption: string;\n noMembers: string;\n colUser: string;\n colMemberSince: string;\n /** `{group}`. */\n membersHeading: string;\n addUser: string;\n userSearch: string;\n role: string;\n noRole: string;\n add: string;\n suggestions: string;\n /** Critério das sugestões (dica ao lado do título). */\n suggestionsHint: string;\n /** Dica do chip: `{groups}` = grupos do sistema em que a pessoa está. */\n suggestionGroups: string;\n /** Nome acessível do chip: `{name}`. */\n addSuggestion: string;\n membersTitle: string;\n memberSearch: string;\n /** `{group}`. */\n membersOf: string;\n noMembersShort: string;\n newMember: string;\n /** `{user}`. */\n addedBy: string;\n removal: string;\n removalEmpty: string;\n undoRemoval: string;\n saveChanges: string;\n colRole: string;\n colAddedAt: string;\n newAccess: string;\n newAccessHeading: string;\n accessCaption: string;\n noAccess: string;\n colGroup: string;\n manageRoutes: string;\n group: string;\n /** `{group}`. */\n routesOf: string;\n noPrivateRoutes: string;\n register: string;\n secretCreated: string;\n /** Rótulo do seletor de aplicação (Aplicações, com \"Consultar\"). */\n pickApp: string;\n disable: string;\n enable: string;\n delete: string;\n /** Nome acessível da faixa de abas da aplicação escolhida (Operações/Acessos/Tokens). */\n appSections: string;\n tabOperations: string;\n tabAccesses: string;\n editApp: string;\n newApp: string;\n name: string;\n grants: string;\n appAccessCaption: string;\n noAppAccess: string;\n colType: string;\n manageOperations: string;\n /** Título da coluna com o botão \"Gerenciar operações\" (abas Acessos e Tokens da aplicação). */\n colOperations: string;\n /** Título da coluna com o botão \"Gerenciar rotas\" (aba Acesso do client), como no painel do Argos. */\n colGuards: string;\n /** Coluna da aba Acesso: rostos dos membros do grupo. */\n colMembers: string;\n /** Campo de filtro no topo do drawer \"Gerenciar operações\" (rótulo acessível e placeholder). */\n filterOperations: string;\n /** Campo de filtro no topo do drawer \"Gerenciar rotas\". */\n filterRoutes: string;\n /** `{term}`. Filtro dos drawers sem nenhum item que case. */\n noFilterMatch: string;\n /** Nome acessível da árvore do drawer \"Gerenciar rotas\". */\n routesTreeLabel: string;\n /** `{group}`. */\n operationsOf: string;\n noOperations: string;\n operationsCaption: string;\n colIdentifier: string;\n colMethod: string;\n colLevel: string;\n colDescription: string;\n colAllowedGroups: string;\n groupCount: PluralMessage;\n newRouter: string;\n routersCaption: string;\n noRouters: string;\n private: string;\n public: string;\n editRouter: string;\n page: string;\n hierarchy: string;\n levelHeader: string;\n levelNavigation: string;\n levelMenu: string;\n levelItem: string;\n levelSubmenu: string;\n privateHint: string;\n routerDescription: string;\n routerDescriptionHint: string;\n colPage: string;\n colBuiltPath: string;\n colVisibility: string;\n /** Coluna e campo do roteador: tipos de grupo (crachás) que podem receber acesso à tela (`allowed_type_ids`). */\n colAllowedBadges: string;\n /** Roteador sem restrição de crachá (`allowed_type_ids` vazio); também o placeholder do campo. */\n anyBadge: string;\n allowedBadgesHint: string;\n newRoute: string;\n routesCaption: string;\n noRoutes: string;\n editRoute: string;\n internalName: string;\n displayName: string;\n icon: string;\n iconPlaceholder: string;\n path: string;\n info: string;\n excludable: string;\n /** Dica do \"Excluível\" ao editar rota protegida: o auto-serviço não libera, só o Argos central. */\n excludableLocked: string;\n /** Selo da rota/roteador que veio de template (não editável pelo auto-serviço) e a explicação dele. */\n templateTag: string;\n templateLocked: string;\n /** Exemplo e regra do caminho: um trecho só do endereço (o \"/\" entre níveis é o roteador que põe). */\n pathPlaceholder: string;\n pathHint: string;\n pathInvalid: string;\n /** Campo do id opcional na criação de rota, roteador e grupo (mesmo id em homologação e produção). */\n optionalId: string;\n optionalIdPlaceholder: string;\n optionalIdHint: string;\n optionalIdInvalid: string;\n /** 409 id_taken: o id escolhido já existe. */\n idTaken: string;\n /** Confirmação das exclusões (diálogo): título e mensagem; `{name}`, `{path}` ou `{group}`. */\n /**\n * \"Gerar novo segredo\" de uma aplicação: botão, confirmação, a janela que mostra o segredo uma vez\n * (`{name}` = nome da aplicação), copiar e os erros (genérico, 404 e 403).\n */\n rotateSecret: string;\n confirmRotateSecretHeading: string;\n confirmRotateSecret: string;\n rotatedSecretHeading: string;\n rotatedSecretWarning: string;\n rotatedSecretNote: string;\n rotatedSecretLabel: string;\n copySecret: string;\n secretCopied: string;\n rotatedSecretDone: string;\n rotateSecretError: string;\n rotateSecretNotFound: string;\n rotateSecretForbidden: string;\n confirmDeleteAppHeading: string;\n confirmDeleteApp: string;\n confirmDeleteRouteHeading: string;\n confirmDeleteRoute: string;\n confirmDeleteRouterHeading: string;\n confirmDeleteRouter: string;\n confirmRemoveAccessHeading: string;\n confirmRemoveAccess: string;\n confirmRemoveConsumerHeading: string;\n confirmRemoveConsumer: string;\n /** Toasts depois de excluir/remover. */\n deleteDone: string;\n deleteError: string;\n colExcludable: string;\n excludableYes: string;\n excludableNo: string;\n colName: string;\n colDisplay: string;\n colIcon: string;\n colPath: string;\n /** Coluna do id (UUID) em Rotas e Roteadores: só o botão de copiar. */\n colId: string;\n /** `{name}`. Nome acessível do botão que copia o UUID da rota. */\n copyRouteId: string;\n /** `{name}`. Nome acessível do botão que copia o UUID do roteador. */\n copyRouterId: string;\n idCopied: string;\n /** Botão da aba Roteadores e título do modal que muda a ordem dos itens no menu do app. */\n reorder: string;\n reorderTitle: string;\n reorderHint: string;\n /** Nome acessível da trilha de níveis do modal e o primeiro degrau (o topo do menu). */\n reorderPath: string;\n reorderRoot: string;\n /** `{name}`: nome acessível da lista ordenável do nível aberto (ou o topo, `reorderRoot`). */\n reorderListLabel: string;\n reorderEmpty: string;\n /** `{name}`. */\n moveUp: string;\n moveDown: string;\n openLevel: string;\n childCount: PluralMessage;\n /** `{name}`, `{position}`, `{total}`: anúncio da região viva depois de mover por botão. */\n movedTo: string;\n reorderLoadError: string;\n reorderSaveError: string;\n reorderSave: string;\n /** Tela Grupos: lista dos grupos do projeto, criar/editar/excluir. */\n newGroup: string;\n editGroup: string;\n noGroups: string;\n /** Tela Grupos: primeiro seletor (o tipo do grupo, do nível mais alto para o mais baixo). */\n accessLevel: string;\n pickAccessLevel: string;\n /** Opção do seletor de nível para os grupos sem tipo. */\n noLevel: string;\n /** Nível escolhido sem nenhum grupo. */\n noGroupsOfLevel: string;\n colStatus: string;\n groupName: string;\n groupType: string;\n groupTypePlaceholder: string;\n groupDescription: string;\n /** Confirmação da exclusão; `{name}`. */\n confirmDeleteGroupHeading: string;\n confirmDeleteGroup: string;\n groupSaveError: string;\n membersSaveError: string;\n /** Tela Aplicações: o projeto ainda não tem aplicação (embaixo do seletor). */\n noApps: string;\n /** Aba Tokens da aplicação: tokens de API (`x-api-token`), criar e revogar. */\n tabTokens: string;\n tokensCaption: string;\n noTokens: string;\n newToken: string;\n colTokenPrefix: string;\n colExpiresAt: string;\n colLastUsed: string;\n tokenExpired: string;\n tokenRevoked: string;\n neverUsed: string;\n revokeToken: string;\n confirmRevokeTokenHeading: string;\n /** `{name}`. */\n confirmRevokeToken: string;\n /** `{name}`. */\n tokenRevokedDone: string;\n tokenRevokeError: string;\n tokensLoadError: string;\n /** Modal \"Novo token\": campos, validade (de amanhã a 365 dias) e as operações liberadas ao token. */\n tokenName: string;\n tokenDescription: string;\n tokenExpiresAt: string;\n tokenExpiresHint: string;\n tokenExpiresInvalid: string;\n tokenOperations: string;\n tokenOperationsNote: string;\n /** Grupo: por que a operação não depende de permissão (public/optional, private, outro nível). No \"Gerenciar operações\"\n * entra só no nome acessível da operação (leitor de tela), não aparece ao lado dela. */\n freeForAll: string;\n freeForAuthenticated: string;\n freeNoPermission: string;\n /** Token: operação public (caixa desmarcada e desabilitada; o token não precisa dela). Aparece no \"Novo token\"; no\n * \"Gerenciar operações\" entra só no nome acessível. */\n publicNoToken: string;\n createToken: string;\n tokenSaveError: string;\n /** O token criado, mostrado uma única vez; `{name}` = nome do token. */\n tokenCreatedHeading: string;\n tokenCreatedWarning: string;\n tokenCreatedNote: string;\n tokenValueLabel: string;\n copyToken: string;\n tokenCopied: string;\n /** Roteadores: a hierarquia é de cima para baixo (cada nível só com o de cima escolhido). */\n hierarchyHint: string;\n routerSaveError: string;\n /** \"Gerenciar operações\" (grupo ou token): falha ao gravar alguma liberação/retirada. */\n permissionsSaveError: string;\n /** \"Gerenciar operações\": resumo no topo (`{marked}` de `{total}` escolhíveis liberadas), grupo e token. */\n permissionsSummaryGroup: string;\n permissionsSummaryToken: string;\n /** Resumo das operações travadas (não dependem de permissão): grupo (aparecem marcadas) e token (public). */\n permissionsFreeGroup: PluralMessage;\n permissionsFreeToken: PluralMessage;\n /** Contador da pasta da árvore: `{marked}` de `{total}` operações escolhíveis dentro dela. */\n permissionsFolderCount: string;\n /** Nome acessível da árvore de operações. */\n permissionsTreeLabel: string;\n /** Erros do argos-admin-server nos tokens de aplicação, pelo código (`error`) da resposta (ver `autoServiceErrorText`). */\n tokenErrors: {\n invalidExpiresAt: string;\n invalidValidity: string;\n invalidOperationIds: string;\n /** `operation_not_protected`: grupo só recebe operação protected. */\n operationNotProtected: string;\n /** `operation_public`: operação public não se libera a token. */\n operationPublic: string;\n appNotFound: string;\n tokenNotFound: string;\n };\n /** Erros do argos-admin-server nos roteadores (`router_hierarchy_gap`: nível sem o nível de cima). */\n routerErrors: {\n hierarchyGap: string;\n /** Algum id de `allowed_type_ids` não é tipo de grupo do realm. */\n invalidAllowedTypes: string;\n };\n /**\n * Erros do argos-admin-server nos grupos e acessos do auto-serviço, pelo código (`error`) da resposta\n * (ver `autoServiceErrorText`). `groupNotFound` é o 404 de grupo de outro projeto.\n */\n groupErrors: {\n invalidType: string;\n adminTypeReserved: string;\n emptyUpdate: string;\n groupProjectImmutable: string;\n groupNameTaken: string;\n adminGroupImmutable: string;\n adminGroupProtected: string;\n adminGroupLastMember: string;\n adminGroupAccessProtected: string;\n groupNotFound: string;\n };\n };\n /**\n * Tela \"Auditoria\" (`@trismegisto/spine/audit`, `SpineAuditComponent`): a mesma nos dois escopos — o\n * auto-serviço (apps do projeto do client) e o painel central do argos admin (`scope: 'admin'`). O nome\n * da chave ficou do tempo em que só o auto-serviço a tinha.\n */\n autoServiceAudit: {\n title: string;\n period: string;\n periodLastHour: string;\n period24h: string;\n period7d: string;\n period30d: string;\n /** Aviso quando o período vem das datas da faixa de filtros (a escolha rápida fica sem efeito). */\n periodFromFilters: string;\n filters: string;\n filterDates: string;\n filterApp: string;\n filterUser: string;\n filterOperation: string;\n filterMethod: string;\n filterOutcome: string;\n filterEntry: string;\n userPlaceholder: string;\n operationPlaceholder: string;\n methodRead: string;\n methodWrite: string;\n methodDelete: string;\n methodStream: string;\n outcomeSuccess: string;\n outcomeFailure: string;\n outcomeDenied: string;\n kpiTotal: string;\n kpiTotalDescription: string;\n kpiFailures: string;\n kpiDenied: string;\n /** `{percent}`. */\n kpiShare: string;\n kpis: string;\n timeline: string;\n /** `{from}`, `{to}`. */\n timelineSummary: string;\n /** `{time}`, `{total}`, `{failures}`, `{denied}`. */\n bucketSummary: string;\n timelineEmpty: string;\n topOperations: string;\n topUsers: string;\n topApps: string;\n noTop: string;\n failureCount: PluralMessage;\n deniedCount: PluralMessage;\n /** `{name}`. */\n filterBy: string;\n eventsCaption: string;\n colWhen: string;\n colApp: string;\n colUser: string;\n colOperation: string;\n colMethod: string;\n colOutcome: string;\n colStatus: string;\n colDuration: string;\n /** `{ms}`. */\n durationMs: string;\n /** Rodapé da tabela: o que vem depois da contagem (\"1 - 50 de 120 {pageItems}\"). */\n pageItems: string;\n /** Rodapé da tabela: rótulo do seletor de eventos por página. */\n pageSize: string;\n /** Falha ao trocar de página (o resumo e a página anterior continuam). */\n pageError: string;\n loading: string;\n emptyTitle: string;\n emptyText: string;\n clearFilters: string;\n errorTitle: string;\n errorText: string;\n retry: string;\n rangeTooLarge: string;\n forbidden: string;\n anonymous: string;\n detailHeading: string;\n detailLoading: string;\n detailError: string;\n fieldWhen: string;\n fieldApp: string;\n fieldUser: string;\n fieldActor: string;\n fieldIp: string;\n fieldOperation: string;\n fieldIdentifier: string;\n fieldMethod: string;\n fieldLevel: string;\n fieldPermission: string;\n fieldOutcome: string;\n fieldStatus: string;\n fieldDuration: string;\n fieldRoute: string;\n fieldTarget: string;\n fieldOrigin: string;\n originEntry: string;\n originInternal: string;\n fieldTrace: string;\n fieldEventId: string;\n fieldMessage: string;\n fieldReceivedAt: string;\n fieldInstance: string;\n fieldSdk: string;\n fieldDetails: string;\n viewTrace: string;\n traceHeading: string;\n traceLoading: string;\n traceError: string;\n traceEmpty: string;\n traceHidden: PluralMessage;\n // ---- unificação admin/client (`@trismegisto/spine/audit`) ----\n period6h: string;\n refresh: string;\n autoRefresh: string;\n /** `{time}`. */\n updatedAt: string;\n /** Rótulo do indicador enquanto a tabela/rankings recarregam (as linhas atuais continuam à vista). */\n updating: string;\n filterUserId: string;\n filterLevel: string;\n filterPermission: string;\n filterActor: string;\n filterStatus: string;\n filterTrace: string;\n userIdPlaceholder: string;\n statusPlaceholder: string;\n tracePlaceholder: string;\n levelPublic: string;\n levelPrivate: string;\n levelProtected: string;\n levelOptional: string;\n permissionAllowed: string;\n permissionForbidden: string;\n permissionUnauthorized: string;\n permissionPublic: string;\n actorUser: string;\n actorAppToken: string;\n actorApiToken: string;\n actorPublic: string;\n actorUnauthenticated: string;\n /** Escopo `admin`: a conta não tem as operações `admin:audit:*`. */\n forbiddenAdmin: string;\n /** 400 `invalid_filter` do servidor. `{detail}` = explicação dele. */\n invalidFilter: string;\n /** Descrição dos KPIs clicáveis (falhas/negados viram filtro). */\n kpiFilterHint: string;\n /** Rodapé dos rankings: `{from}`, `{to}`, `{total}`. */\n topsRange: string;\n /** `{name}` = título do ranking. */\n topsPrevious: string;\n /** `{name}` = título do ranking. */\n topsNext: string;\n topsError: string;\n filterByTrace: string;\n\n // ---- leitura por AÇÃO (uma linha por trace) x por evento ----\n /** Rótulo do alternador \"Ações | Eventos\". */\n unitLabel: string;\n unitActions: string;\n unitEvents: string;\n kpiTotalActions: string;\n kpiTotalActionsDescription: string;\n /** `{from}`, `{to}`. */\n timelineSummaryActions: string;\n /** `{time}`, `{total}`, `{failures}`, `{denied}`. */\n bucketSummaryActions: string;\n timelineEmptyActions: string;\n actionsCaption: string;\n pageItemsActions: string;\n pageErrorActions: string;\n emptyTitleActions: string;\n /** Coluna com a quantidade de spans (registros) da ação. */\n colSpans: string;\n /** Dica da célula de spans: `{apps}` = aplicações envolvidas. */\n spansApps: string;\n /** Spans de fora do escopo do client: contados à parte. */\n spansHidden: PluralMessage;\n actionDetailHeading: string;\n /** Ação sem a entrada (entry) no período: começa por uma chamada entre aplicações. */\n orphanNote: string;\n orphanTag: string;\n spansHeading: string;\n /** Linha do tempo dos spans: `{count}` spans em `{duration}`. */\n spansSummary: string;\n /** `{app}`, `{operation}`, `{outcome}`, `{offset}`, `{duration}`. */\n spanRow: string;\n };\n /** Tela Tentativas de login (`SpineLoginAttemptsComponent`, `@trismegisto/spine/audit`). */\n /** Recursos opcionais do painel de configurações (`SpineFeatures`). */\n accountFeatures: {\n aiAgent: string;\n aiAgentDescription: string;\n aiAgentKeywords: string;\n aiAgentHelp: string;\n aiAgentStart: string;\n aiAgentServers: string;\n aiAgentAccess: string;\n aiAgentReadOnly: string;\n aiAgentReadWrite: string;\n aiAgentWriteHint: string;\n aiAgentReadOnlyServer: string;\n aiAgentTokenName: string;\n aiAgentGenerate: string;\n aiAgentSelectServer: string;\n aiAgentResult: string;\n aiAgentResultHint: string;\n aiAgentCopy: string;\n aiAgentCopied: string;\n aiAgentDone: string;\n aiAgentCreateError: string;\n aiAgentUnavailable: string;\n activity: string;\n activityDescription: string;\n activityKeywords: string;\n activityFilter: string;\n activityAll: string;\n activityFailures: string;\n activityDetail: string;\n activityApp: string;\n activityEmpty: string;\n activityMore: string;\n activityShowing: string;\n activityLoadError: string;\n unknownIp: string;\n unknownApp: string;\n idle: string;\n idleDescription: string;\n idleKeywords: string;\n idleNever: string;\n idleOption: string;\n idleLimitHint: string;\n idleWarningHeading: string;\n idleWarningText: PluralMessage;\n idleStay: string;\n idleLogout: string;\n startPage: string;\n startPageDescription: string;\n startPageKeywords: string;\n startHome: string;\n startLast: string;\n startFavorite: string;\n startPageHint: string;\n defaultBadge: string;\n defaultBadgeDescription: string;\n defaultBadgeKeywords: string;\n defaultBadgeAuto: string;\n defaultBadgeSaved: string;\n defaultBadgeError: string;\n defaultBadgeLoadError: string;\n notices: string;\n noticesDescription: string;\n noticesKeywords: string;\n browserNotices: string;\n browserNoticesDescription: string;\n browserNoticesDenied: string;\n browserNoticesUnsupported: string;\n /** Ação do aviso na tela que abre a `url` dele. */\n noticeOpen: string;\n sync: string;\n syncDescription: string;\n syncKeywords: string;\n syncSynced: string;\n syncSaving: string;\n syncLocal: string;\n syncError: string;\n syncNow: string;\n };\n loginAttempts: {\n refresh: string;\n user: string;\n userPlaceholder: string;\n period: string;\n result: string;\n method: string;\n all: string;\n clear: string;\n advancedFilters: string;\n ip: string;\n ipPlaceholder: string;\n ipHint: string;\n reason: string;\n caption: string;\n pageItems: string;\n pageSize: string;\n colDate: string;\n colResult: string;\n colMethod: string;\n colUser: string;\n colReason: string;\n colIp: string;\n colRealm: string;\n colClient: string;\n colUserAgent: string;\n filterByIp: string;\n filterByUser: string;\n /** Identificador digitado que não corresponde a usuário nenhum. */\n noMatchingUser: string;\n methods: Record<'local' | 'mfa' | 'github' | 'google' | 'keycloak' | 'entraid', string>;\n results: Record<'success' | 'failure' | 'cancelled', string>;\n reasons: Record<\n 'bad_password' | 'unknown_user' | 'locked' | 'mfa_failed' | 'mfa_expired' | 'mfa_not_allowed' | 'mfa_invalid_method'\n | 'recovery_failed' | 'recovery_refused' | 'not_linked' | 'wrong_realm',\n string\n >;\n /** 403 no painel central (falta a operação). */\n forbiddenAdmin: string;\n /** 403 no auto-serviço (não administra o client). */\n forbiddenClient: string;\n /** Erro com o detalhe do servidor: `{detail}`. */\n loadErrorDetail: string;\n loadError: string;\n };\n /** Sugestões de melhoria: o botão da barra da página, \"Minhas sugestões\" e o kanban do auto-serviço. */\n suggestions: {\n button: string;\n buttonHint: string;\n modalTitle: string;\n intro: string;\n kind: string;\n kinds: Record<'melhoria' | 'nova_funcionalidade' | 'problema' | 'outro', string>;\n statuses: Record<'em_analise' | 'planejada' | 'em_desenvolvimento' | 'concluida' | 'recusada', string>;\n /** Status que saíram (a 0035 do Argos tirou o \"Nova\") e ainda aparecem no histórico antigo. */\n legacyStatuses: Record<'nova', string>;\n title: string;\n titlePlaceholder: string;\n titleRequired: string;\n description: string;\n descriptionHint: string;\n screen: string;\n screenHint: string;\n send: string;\n cancel: string;\n sent: string;\n sendError: string;\n similarHeading: string;\n similarHint: string;\n /** \"+1\" numa sugestão que outra pessoa já fez. */\n vote: string;\n voted: string;\n votes: PluralMessage;\n voteError: string;\n yours: string;\n mine: string;\n mineEmpty: string;\n mineError: string;\n loadMore: string;\n statusFilter: string;\n allStatuses: string;\n adminReply: string;\n /** `{date}`. */\n sentAt: string;\n /** O quadro. */\n boardLabel: string;\n search: string;\n kindFilter: string;\n allKinds: string;\n refresh: string;\n boardEmpty: string;\n boardEmptyHint: string;\n /** `{shown}` de `{total}` quando há filtro. */\n boardFiltered: string;\n loadError: string;\n moveError: string;\n removedAuthor: string;\n noScreen: string;\n noDescription: string;\n requestedBy: string;\n requestedAt: string;\n status: string;\n statusSaved: string;\n statusError: string;\n history: string;\n historyEmpty: string;\n /** `{actor}`, `{from}`, `{to}`. */\n eventStatus: string;\n /** `{actor}`. */\n eventComment: string;\n someone: string;\n comment: string;\n commentHint: string;\n commentSend: string;\n commentSent: string;\n commentError: string;\n commentRequired: string;\n /** Quadro x arquivo (recusadas e concluídas antigas). */\n viewLabel: string;\n viewBoard: string;\n viewArchive: string;\n kpis: string;\n /** As abertas (em análise, planejadas e em desenvolvimento). */\n kpiOpen: string;\n /** `{status}`, `{count}`: o detalhamento por status no indicador das abertas. */\n kpiStatusCount: string;\n /** `{days}`. */\n kpiDone: string;\n /** `{count}`: concluídas hoje. */\n kpiDoneToday: string;\n kpiDoneNoneToday: string;\n /** `{count}`: venceram ontem (passaram a vencidas hoje). */\n kpiOverdueTrend: string;\n kpiOverdueSteady: string;\n kpiSoon: string;\n kpiMineHint: string;\n kpiPriority: string;\n kpiPriorityNone: string;\n /** `{priority}`, `{count}`: cada parte da legenda (botão que filtra). */\n kpiPriorityPart: string;\n /** Barra de filtros e criação. */\n filters: string;\n moreFilters: string;\n /** `{count}`: filtros extras ligados. */\n moreFiltersActive: string;\n allBoardStatuses: string;\n /** `{status}`. */\n newTaskIn: string;\n newTaskOptions: string;\n /** Coluna: resumo, vazio. `{age}`. */\n columnOldest: string;\n columnOverdue: PluralMessage;\n columnEmpty: string;\n columnEmptyFiltered: string;\n /** `{days}` na de concluídas. */\n columnEmptyHints: Record<'em_analise' | 'planejada' | 'em_desenvolvimento' | 'concluida', string>;\n /** Duração curta (\"4h 12min\"): `{d}`, `{h}`, `{m}`. */\n duration: Record<'days' | 'hours' | 'minutes', string>;\n /** Cartão: `{date}`. */\n createdOn: string;\n /** `{date}`: prazo futuro (não é hoje nem amanhã). */\n dueWithin: string;\n dueLateDays: PluralMessage;\n screenFilter: string;\n allScreens: string;\n authorFilter: string;\n allAuthors: string;\n sort: string;\n sorts: Record<'position' | 'votes' | 'recent', string>;\n /** Com ordenação por votos ou data, arrastar só troca de coluna. */\n sortHint: string;\n clearFilters: string;\n topVoted: string;\n comments: PluralMessage;\n /** `{date}`: quando entrou no status atual. */\n statusSince: string;\n openScreen: string;\n statusChange: string;\n statusComment: string;\n statusCommentHint: string;\n statusApply: string;\n archiveLabel: string;\n archiveSearch: string;\n archiveEmpty: string;\n /** `{days}`. */\n archiveEmptyHint: string;\n archiveCount: PluralMessage;\n /** `{date}`: quando foi concluída ou recusada. */\n closedOn: Record<'concluida' | 'recusada', string>;\n pagination: string;\n reopen: string;\n reopened: string;\n reopenError: string;\n /** Quadro de trabalho (a equipe trabalha a sugestão como tarefa). */\n newTask: string;\n addTaskPlaceholder: string;\n taskCreated: string;\n createError: string;\n saveError: string;\n kpiMine: string;\n kpiOverdue: string;\n assigneeFilter: string;\n allAssignees: string;\n assigneeMine: string;\n assigneeNone: string;\n labelFilter: string;\n allLabels: string;\n priorityFilter: string;\n allPriorities: string;\n dueFilter: string;\n dueAny: string;\n dueOverdueFilter: string;\n dueSoonFilter: string;\n priority: string;\n priorities: Record<'urgente' | 'alta' | 'media' | 'baixa', string>;\n /** `{date}`. */\n dueOn: string;\n dueToday: string;\n dueTomorrow: string;\n /** `{date}`. */\n dueLate: string;\n /** `{done}`, `{total}`. */\n checklistSpoken: string;\n /** `{count}`: responsáveis além dos que aparecem. */\n moreAssignees: string;\n /** `{key}`. */\n cardMenu: string;\n menuStatus: string;\n menuAssignMe: string;\n menuCopyLink: string;\n menuCopyKey: string;\n menuLabel: string;\n menuNoLabels: string;\n menuPriority: string;\n menuArchive: string;\n menuRestore: string;\n menuDelete: string;\n /** `{n}`: o nome falado de cada cor de rótulo. */\n labelColorName: string;\n linkCopied: string;\n keyCopied: string;\n copyError: string;\n /** `{key}`. */\n deleteHeading: string;\n deleteMessage: string;\n deleteConfirm: string;\n deleted: string;\n archivedToast: string;\n restoredToast: string;\n assignedToMe: string;\n archivedTag: string;\n /** Detalhe da tarefa. */\n taskLabel: string;\n close: string;\n editTitle: string;\n editDescription: string;\n save: string;\n checklist: string;\n checklistAdd: string;\n checklistPlaceholder: string;\n checklistOnCard: string;\n checklistEmpty: string;\n /** `{text}`. */\n checklistRemove: string;\n /** `{text}`. */\n checklistUp: string;\n /** `{text}`. */\n checklistDown: string;\n tabComments: string;\n tabActivity: string;\n commentsEmpty: string;\n activityEmpty: string;\n commentInternal: string;\n internalTag: string;\n /** `{actor}`, `{from}`, `{to}` por campo do evento 'change' (sufixo `_removed` = o valor saiu). */\n activity: Record<\n | 'created' | 'title' | 'description' | 'kind' | 'priority' | 'start_date' | 'start_date_removed' | 'due_date'\n | 'due_date_removed' | 'cover' | 'cover_removed' | 'checklist_on_card' | 'screen' | 'assignee_added' | 'assignee_removed'\n | 'watcher_added' | 'watcher_removed' | 'label_added' | 'label_removed' | 'checklist_added' | 'checklist_done'\n | 'checklist_undone' | 'checklist_renamed' | 'checklist_removed' | 'archived' | 'restored' | 'merged'\n | 'merged_here' | 'unmerged' | 'unmerged_here' | 'other',\n string\n >;\n assignees: string;\n assignMe: string;\n addAssignee: string;\n watchers: string;\n addWatcher: string;\n /** `{name}`. */\n removePerson: string;\n peopleSearch: string;\n peopleEmpty: string;\n nobody: string;\n reporter: string;\n originUser: string;\n originTeam: string;\n startDate: string;\n dueDate: string;\n labels: string;\n addLabel: string;\n /** `{name}`. */\n createLabel: string;\n labelColor: string;\n noLabels: string;\n screenOrigin: string;\n votesField: string;\n createdAt: string;\n updatedAt: string;\n /** `{when}`, `{actor}`. */\n lastChange: string;\n /** `{when}`. */\n lastChangeNoActor: string;\n key: string;\n copyKey: string;\n newTaskHeading: string;\n createTask: string;\n draftHint: string;\n assignMeOnCreate: string;\n /** \"Sugestões do app\": a gaveta com as de todo mundo no app (Todas) e as da pessoa (Minhas). */\n appSuggestions: string;\n /** Nome acessível do seletor Todas | Minhas. */\n listView: string;\n tabAll: string;\n tabMine: string;\n appSearch: string;\n /** Filtro rápido: só as pedidas na tela atual. */\n thisScreen: string;\n appSorts: Record<'votes' | 'recent', string>;\n appEmpty: string;\n appEmptyHint: string;\n appEmptyFiltered: string;\n appError: string;\n /** `{count}`: o botão de apoio, antes e depois de apoiar. */\n support: string;\n /** `{count}`. */\n supported: string;\n /** Dica do apoio desligado na sugestão da própria pessoa. */\n ownSupportHint: string;\n /** O detalhe só de leitura (clicar no título expande o item). */\n publicComments: string;\n publicCommentsEmpty: string;\n commentsError: string;\n moreComments: string;\n appPagination: string;\n /** Agrupar (a equipe junta pedidos repetidos numa sugestão só). */\n menuMerge: string;\n /** `{key}`. */\n mergeHeading: string;\n mergeIntro: string;\n mergeSearch: string;\n mergeNone: string;\n mergeHasMerged: string;\n /** `{votes}` (o plural de `votes`), `{reporters}` (o de `reportersCount`), `{key}`: o que passa para o destino. */\n mergePreview: string;\n mergeCalculating: string;\n mergePreviewError: string;\n reportersCount: PluralMessage;\n /** `{key}`, `{target}`. */\n mergeConfirmHeading: string;\n mergeConfirmMessage: string;\n mergeConfirm: string;\n /** `{key}`, `{target}`. */\n mergedToast: string;\n mergeError: string;\n mergedTag: string;\n /** `{key}`: o aviso na agrupada. */\n mergedInto: string;\n mergedIntoHint: string;\n /** `{key}`. */\n openMerged: string;\n unmerge: string;\n /** `{key}`: nome do botão de desagrupar uma das agrupadas. */\n unmergeLabel: string;\n /** `{key}`. */\n unmergedToast: string;\n reporters: string;\n reporterAuthor: string;\n /** `{key}`: o relator veio desta agrupada. */\n reporterVia: string;\n mergedHere: string;\n /** \"Minhas\": `{key}` (a da pessoa), `{target}` (a principal). */\n mergedFrom: string;\n mergedFromHint: string;\n /** Nome acessível do menu do botão da barra (sugerir ou abrir a página). */\n buttonMenu: string;\n /** O item do menu que abre a página \"Sugestões do app\" (sem passar pelo formulário). */\n openPage: string;\n /** Escolha da tela no modal: uma do menu do app ou uma nova. */\n screenPick: string;\n screenPickHint: string;\n screenPickPlaceholder: string;\n newScreenOption: string;\n newScreenName: string;\n newScreenHint: string;\n newScreenRequired: string;\n newScreenTag: string;\n /** Com quem está a vez na conversa (selo, filtro e o menu da equipe). */\n waiting: Record<'solicitante' | 'responsaveis', string>;\n waitingFilter: string;\n waitingAny: string;\n waitingClear: string;\n waitingSaved: string;\n menuWaiting: string;\n /** Grupos de quem pediu (o escopo de quem vê a sugestão). */\n groupFilter: string;\n allGroups: string;\n requestingGroups: string;\n noGroups: string;\n /** Mensagens de quem pede ainda não lidas por quem consulta. */\n unread: PluralMessage;\n /** O selo no comentário escrito por quem pediu (ou um envolvido). */\n fromRequester: string;\n /** O resumo do checklist no cartão (abre e fecha os itens): `{count}` itens, `{done}` feitos. */\n cardChecklist: PluralMessage;\n /** `{name}`: a foto de quem pediu no cartão. */\n requestedByName: string;\n /** A primeira aba do detalhe da tarefa (descrição e checklist). */\n tabSummary: string;\n /** Conversa em chat: `{name}` e `{role}` (Solicitante | Equipe) no cabeçalho de quem escreveu do outro lado. */\n chatAuthor: string;\n /** A dica do campo da conversa. */\n chatSendHint: string;\n /** A página \"Sugestões do app\" de quem pede (lista, filtros e o painel com a conversa). */\n /** A fonte \"Sugestões\" na central de notificações. */\n inbox: {\n label: string;\n /** A última novidade é um comentário: `{name}`, `{comment}`. */\n comment: string;\n /** A última novidade é uma mudança de status: `{name}`, `{status}`. */\n status: string;\n };\n page: {\n title: string;\n description: string;\n /** O cabeçalho da lista sem recorte e cada parte do resumo por status (`{count}`, `{status}`). */\n allTitle: string;\n statusPart: string;\n reasons: Record<'autor' | 'relator' | 'envolvido' | 'responsavel' | 'grupo', string>;\n /** Por que a pessoa vê a sugestão, no detalhe. */\n reasonHints: Record<'autor' | 'relator' | 'envolvido' | 'responsavel' | 'grupo', string>;\n reasonFilter: string;\n allReasons: string;\n needsYou: string;\n sorts: Record<'activity' | 'recent' | 'votes', string>;\n empty: string;\n emptyHint: string;\n emptyFiltered: string;\n error: string;\n count: PluralMessage;\n pickOne: string;\n notFound: string;\n conversation: string;\n conversationEmpty: string;\n conversationError: string;\n olderMessages: string;\n reply: string;\n replyPlaceholder: string;\n replySend: string;\n replyError: string;\n readOnly: string;\n team: string;\n you: string;\n groups: string;\n details: string;\n listLabel: string;\n filtersLabel: string;\n waitingYou: string;\n waitingTeam: string;\n };\n };\n}\n\nexport const SPINE_MESSAGES_PT_BR: SpineMessages = {\n meta: { locale: 'pt-BR' },\n inbox: {\n title: 'Notificações',\n button: { zero: 'Notificações', one: 'Notificações, {count} nova', other: 'Notificações, {count} novas' },\n empty: 'Nada novo por aqui.',\n error: 'Não foi possível carregar as notificações.',\n retry: 'Tentar de novo',\n news: { one: '{count} novidade', other: '{count} novidades' },\n },\n header: {\n home: 'Início',\n apps: 'Aplicações',\n themeDark: 'Tema escuro',\n themeLight: 'Tema claro',\n densityComfortable: 'Densidade confortável',\n densityCompact: 'Densidade compacta',\n fullscreen: 'Tela cheia',\n exitFullscreen: 'Sair da tela cheia',\n user: 'Usuário',\n accessLevels: 'Níveis de acesso',\n settings: 'Configurações',\n appearance: 'Aparência',\n shortcuts: 'Atalhos de teclado',\n news: 'Novidades',\n newsUnseen: '{label} ({count})',\n logout: 'Sair',\n search: 'Busca',\n searchPlaceholder: 'Buscar módulo ou página…',\n searchFavorites: 'Favoritos',\n searchRecent: 'Abertos há pouco',\n searchModules: 'Módulos',\n searchScreens: 'Telas',\n },\n navigation: {\n back: 'Voltar',\n home: 'Início',\n favorite: 'Favoritar esta página',\n unfavorite: 'Remover dos favoritos',\n copyLink: 'Copiar link da página',\n linkCopied: 'Link copiado!',\n },\n sidebar: {\n modules: 'Módulos',\n moduleNavigation: 'Navegação de {module}',\n apps: 'Aplicações',\n },\n pageBar: {\n favorite: 'Favoritar esta página',\n unfavorite: 'Remover dos favoritos',\n copyLink: 'Copiar link da página',\n linkCopied: 'Link copiado',\n docs: 'Documentação desta tela',\n trail: 'Você está em',\n },\n pagePanel: {\n notFoundTitle: 'Não encontramos esta página',\n notFoundText: 'O endereço não existe mais. Feche a aba e abra a página pelo menu.',\n },\n docs: {\n heading: 'Documentação',\n index: 'Índice da documentação',\n search: 'Buscar na documentação',\n noMatch: 'Nenhuma página encontrada com esse termo.',\n empty: 'Nenhuma tela com documentação ainda.',\n view: 'Visão da documentação',\n usage: 'Como usar',\n technical: 'Especificação técnica',\n loading: 'Carregando a documentação',\n loadError: 'Não foi possível carregar esta documentação.',\n invite: 'Escolha uma página no índice para ler a documentação dela.',\n },\n news: {\n heading: 'Novidades',\n close: 'Fechar',\n unseen: 'Nova',\n toastOne: 'Novidade: {title}',\n toastMany: '{count} novidades',\n see: 'Ver',\n loading: 'Carregando as novidades…',\n empty: 'Nenhuma novidade por enquanto.',\n loadError: 'Não foi possível carregar as novidades.',\n retry: 'Tentar de novo',\n pages: 'Lista de novidades',\n search: 'Buscar novidades',\n searchPlaceholder: 'Buscar novidades…',\n filters: 'Filtrar novidades',\n filterAll: 'Todas',\n filterUnread: 'Não lidas',\n filterFavorites: 'Favoritas',\n favorite: 'Favoritar \"{title}\"',\n unfavorite: 'Tirar \"{title}\" das favoritas',\n noResults: 'Nenhuma novidade encontrada.',\n home: 'Início',\n changes: 'O que mudou',\n before: 'Antes',\n after: 'Agora',\n markUnread: 'Marcar como não lida',\n gotIt: 'Entendi',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementação',\n kindAlteracao: 'Alteração',\n publishedOn: 'Publicada em {date}',\n editedOn: 'Editada em {date}',\n body: 'Texto da novidade',\n detailError: 'Não foi possível abrir esta novidade. Ela pode ter saído do ar.',\n },\n autoServiceNews: {\n caption: 'Novidades do app',\n empty: 'Nenhuma novidade cadastrada. Quem entra no app vê aqui o que mudou.',\n newNews: 'Nova novidade',\n editNews: 'Editar novidade',\n newNewsIntro: 'Preencha as informações da novidade que será exibida para os usuários.',\n editNewsIntro: 'Atualize as informações da novidade que será exibida para os usuários.',\n sectionMain: 'Informações principais',\n sectionMainHint: 'O título e o resumo aparecem na lista de novidades e no card do Início.',\n sectionBody: 'Conteúdo da novidade',\n sectionBodyHint: 'Descreva os detalhes da novidade. Use formatação, listas, links e destaque informações importantes.',\n sectionPublish: 'Publicação',\n sectionUntil: 'Validade (opcional)',\n sectionAudience: 'Público',\n preview: 'Pré-visualização no Início',\n previewTitle: 'Título da novidade',\n previewSummary: 'O resumo aparece aqui.',\n previewNow: 'Publicada ao salvar',\n tipTitle: 'Dica:',\n tipText: 'título curto e resumo direto chamam mais atenção no Início.',\n untilDate: 'Último dia em que aparece',\n audienceGroups: 'Grupos',\n kind: 'Tipo de publicação',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementação',\n kindAlteracao: 'Alteração',\n sectionBodyHintImpl: 'Uma introdução curta, se quiser, e a lista do que há de novo.',\n sectionBodyHintAlt: 'Mostre como era antes e como ficou agora. A introdução é opcional.',\n intro: 'Introdução (opcional)',\n items: 'O que mudou',\n itemsHint: 'Uma mudança por item, até 300 caracteres. De 1 a 30 itens.',\n itemPlaceholder: 'Descreva uma mudança',\n itemsEmpty: 'Nenhuma mudança na lista ainda.',\n before: 'Antes',\n after: 'Agora',\n colTitle: 'Título',\n colPublishedAt: 'Publicação',\n colUntil: 'Validade',\n colAudience: 'Público',\n colAuthor: 'Autor',\n colStatus: 'Situação',\n statusScheduled: 'Agendada',\n statusPublished: 'Publicada',\n statusExpired: 'Vencida',\n audienceAll: 'Todos',\n noUntil: 'Sem fim',\n title: 'Título',\n summary: 'Resumo',\n summaryHint: 'Escreva um resumo curto e direto. Até 300 caracteres.',\n body: 'Texto',\n bodyHint: 'Abre quando a pessoa clica na novidade.',\n publishDate: 'Data da publicação',\n publishTime: 'Hora da publicação',\n publishHint: 'No futuro, a novidade fica agendada. Sem data, ela é publicada imediatamente.',\n until: 'Validade',\n untilHint: 'Se não informar, a novidade não expira.',\n audience: 'Público',\n audienceHint: 'Grupos com acesso ao app. Sem grupo, todos que entram no app veem.',\n confirmDeleteHeading: 'Excluir novidade',\n confirmDelete: 'Excluir a novidade \"{title}\"? Ela some para todo mundo, inclusive para quem ainda não viu.',\n saveError: 'Não foi possível salvar a novidade.',\n loadError: 'Não foi possível carregar as novidades.',\n errors: {\n invalidTitle: 'Informe um título de até 140 caracteres.',\n invalidSummary: 'O resumo tem até 300 caracteres.',\n bodyTooLarge: 'O texto passou do limite de 64 KB.',\n invalidPublishedAt: 'Data ou hora da publicação inválida.',\n invalidUntil: 'Data de validade inválida.',\n invalidGroupIds: 'Algum grupo do público não tem mais acesso ao app. Revise o público.',\n untilBeforePublish: 'A validade não pode terminar antes da publicação.',\n invalidKind: 'Tipo de publicação inválido.',\n invalidItems: 'A implementação precisa de 1 a 30 mudanças, de até 300 caracteres cada.',\n invalidCompare: 'A alteração precisa do antes e do agora.',\n compareTooLarge: 'O antes ou o agora passou do limite de 32 KB.',\n },\n },\n setup: {\n label: 'Configuração inicial',\n step: 'Etapa {current} de {total}',\n skip: 'Pular',\n back: 'Voltar',\n next: 'Continuar',\n finish: 'Começar',\n close: 'Entendi',\n greeting: 'Olá, {name}. Deixe do seu jeito.',\n greetingAnonymous: 'Deixe do seu jeito.',\n appearanceIntro: 'Escolha como os sistemas aparecem para você. A escolha vale em todos eles e pode ser mudada quando quiser, nas configurações.',\n preview: 'Prévia',\n previewPage: 'Início',\n essentialsTitle: 'O essencial',\n essentialsIntro: 'Quatro coisas que ajudam no dia a dia.',\n searchTitle: 'Busque qualquer tela',\n searchText: 'Pressione {key} ou use a busca do cabeçalho para achar telas, favoritos e o que você abriu há pouco.',\n tabsTitle: 'Abas e painéis',\n tabsText: 'Cada tela abre numa aba. Arraste a aba para um lado da área de trabalho para ver duas telas juntas.',\n favoritesTitle: 'Favoritos',\n favoritesText: 'Marque o coração de uma tela para ela aparecer no início e no topo da busca.',\n settingsTitle: 'Configurações',\n settingsText: 'Aparência, região, acessibilidade e segurança da conta ficam no menu do seu perfil, ou em {key}.',\n },\n shortcuts: {\n heading: 'Atalhos de teclado',\n hint: 'Dica: pressione {key} a qualquer momento para reabrir este painel.',\n essentials: 'Rever o essencial',\n dismiss: 'Entendi',\n openSearch: 'Abrir a busca rápida',\n goHome: 'Ir para a Home',\n goFavorite: 'Ir para o favorito nº 1 a 9',\n history: 'Voltar / avançar no histórico',\n openSettings: 'Abrir as configurações',\n toggleTheme: 'Alternar tema claro / escuro',\n fullscreen: 'Tela cheia',\n logout: 'Sair (logout)',\n showHelp: 'Mostrar este painel de atalhos',\n closeOverlay: 'Fechar modal / painel aberto',\n },\n settings: {\n heading: 'Configurações',\n appearance: 'Aparência',\n appearanceKeywords: 'visual cores tema layout',\n theme: 'Tema',\n themeDescription: 'Claro, escuro ou o do sistema operacional.',\n themeKeywords: 'modo escuro dark light noturno',\n themeLight: 'Claro',\n themeDark: 'Escuro',\n themeSystem: 'Sistema',\n accent: 'Cor principal',\n accentDescription: 'Família de cores do cabeçalho, dos botões e dos destaques.',\n accentKeywords: 'família paleta cor accent',\n density: 'Densidade',\n densityDescription: 'Compacta mostra mais informação na tela.',\n densityKeywords: 'espaçamento tamanho compacto',\n comfortable: 'Confortável',\n compact: 'Compacta',\n font: 'Fonte',\n fontDescription: 'Família de letra de todo o aplicativo.',\n fontKeywords: 'tipografia letra texto roboto rubik figtree geist',\n sidebar: 'Menu lateral',\n sidebarDescription: 'Como o menu lateral abre e fecha.',\n sidebarKeywords: 'sidebar navegação barra lateral',\n sidebarHelp: 'Automático: abre ao aproximar o ponteiro. Fixo: fica sempre aberto. Compacto: mostra só os ícones.',\n sidebarAuto: 'Automático',\n sidebarFixed: 'Fixo',\n sidebarCompact: 'Compacto',\n region: 'Região',\n regionKeywords: 'idioma língua localização horário data hora semana',\n language: 'Idioma',\n languageDescription: 'Vale na hora, sem recarregar.',\n languageKeywords: 'língua language idioma tradução inglês espanhol português',\n languageAuto: 'Padrão do sistema ({language})',\n timeZone: 'Fuso horário',\n timeZoneKeywords: 'timezone hora utc gmt',\n timeZoneHint: 'Para datas e horários. Agora: {now}',\n timeZoneAuto: 'Automático ({zone})',\n hourCycle: 'Formato de hora',\n hourCycleHint: 'Agora: {now}',\n hourCycleKeywords: 'relógio 24h 12h am pm horário',\n hourCycleAuto: 'Automático',\n hourCycle24: '24 horas',\n hourCycle12: '12 horas',\n weekStart: 'Primeiro dia da semana',\n weekStartDescription: 'Para calendários e seletores de data.',\n weekStartKeywords: 'semana calendário domingo segunda',\n weekStartAuto: 'Automático',\n shortcuts: 'Atalhos',\n shortcutsDescription: 'Pressione ? em qualquer tela para ver esta lista.',\n shortcutsKeywords: 'teclado teclas',\n setup: 'Configuração inicial',\n setupDescription: 'Abre de novo a escolha de aparência do primeiro acesso.',\n setupKeywords: 'configuração inicial primeiro acesso aparência boas-vindas',\n redoSetup: 'Refazer',\n essentials: 'O essencial',\n essentialsDescription: 'Busca, abas, favoritos e configurações em um resumo.',\n essentialsKeywords: 'ajuda dicas busca abas favoritos apresentação',\n showEssentials: 'Ver',\n accessibility: 'Acessibilidade',\n accessibilityKeywords: 'acessibilidade leitura visão',\n textSize: 'Tamanho do texto',\n textSizeDescription: 'Aumenta o texto e os controles de todas as telas.',\n textSizeKeywords: 'zoom fonte letra maior ampliar',\n motion: 'Reduzir animações',\n motionDescription: 'Sistema segue o computador ou o celular.',\n motionKeywords: 'animação movimento transição reduced motion enjoo tontura',\n motionSystem: 'Sistema',\n motionReduce: 'Sempre',\n motionFull: 'Nunca',\n help: 'Ajuda',\n helpKeywords: 'ajuda novidades configuração inicial essencial apresentação',\n news: 'Novidades',\n newsDescription: 'O que mudou nas últimas versões.',\n newsKeywords: 'novidades versão lançamento changelog',\n showNews: 'Ver novidades',\n browserData: 'Dados do navegador',\n browserDataDescription: 'Guardados só neste navegador, para a sua conta.',\n browserDataKeywords: 'privacidade limpar apagar histórico dados',\n recentPages: 'Páginas recentes',\n recentPagesKeywords: 'histórico visitadas recentes',\n recentSearches: 'Buscas recentes',\n recentSearchesKeywords: 'busca pesquisa histórico',\n favorites: 'Favoritos',\n favoritesKeywords: 'favoritos estrela',\n pagesCount: { zero: 'Nenhuma página guardada', one: '{count} página guardada', other: '{count} páginas guardadas' },\n searchesCount: { zero: 'Nenhuma busca guardada', one: '{count} busca guardada', other: '{count} buscas guardadas' },\n clear: 'Limpar',\n confirmClear: 'Confirmar',\n cancel: 'Cancelar',\n recentPagesCleared: 'Páginas recentes apagadas.',\n recentSearchesCleared: 'Buscas recentes apagadas.',\n favoritesCleared: 'Favoritos apagados.',\n restorePreferences: 'Preferências',\n restorePreferencesDescription: 'Aparência, acessibilidade e formatos voltam ao padrão.',\n restorePreferencesHelp: 'Voltam ao padrão: tema, cor principal, densidade, fonte, menu lateral, tamanho do texto, animações, formato de hora e primeiro dia da semana. Idioma, fuso horário e atalhos de tecla única ficam como estão.',\n restorePreferencesKeywords: 'restaurar padrão redefinir reset preferências',\n restore: 'Restaurar padrão',\n confirmRestore: 'Confirmar',\n preferencesRestored: 'Preferências restauradas.',\n account: 'Conta',\n accountKeywords: 'perfil usuário login nível sair',\n user: 'Usuário',\n accessLevel: 'Nível de acesso',\n accessLevelKeywords: 'crachá badge perfil permissão grupo',\n session: 'Sessão',\n sessionDescription: 'Renovada sozinha enquanto a aplicação estiver aberta.',\n sessionKeywords: 'expiração token login',\n sessionUnknown: 'Não informado',\n sessionExpired: 'Expirada às {time}',\n sessionExpiresIn: 'Expira em {minutes} min (às {time})',\n sessionExpiresAt: 'Expira às {time}',\n accessToken: 'Token de acesso',\n accessTokenDescription: 'Para testar uma API em seu nome. Não compartilhe.',\n accessTokenKeywords: 'jwt bearer api desenvolvedor',\n copy: 'Copiar',\n moreAbout: 'Mais sobre {label}',\n appTokens: 'Tokens de aplicação',\n appTokensDescription: 'Para usar a aplicação fora da interface: um MCP, um script.',\n appTokensKeywords: 'token app mcp api chave pat x-app-token automação script integração',\n appTokensHelp: 'O token vale só para esta aplicação, com as permissões do nível de acesso escolhido, e expira em no máximo 1 ano. Envie no cabeçalho x-app-token.',\n groups: 'Grupos',\n groupsDescription: 'Os grupos desta aplicação de que você participa. Escolha um para ver os membros.',\n groupsKeywords: 'grupo grupos membros equipe pessoas função administrador editor membro incluir remover acesso',\n groupRole: 'Sua função: {role} · Crachá: {badge}',\n groupRoleDisabled: 'Sua função: {role} · Grupo desativado',\n logout: 'Sair',\n logoutDescription: 'Encerra a sessão neste navegador.',\n logoutKeywords: 'logout desconectar',\n mfa: 'MFA',\n mfaDescription: 'Verificação em duas etapas da sua conta no Argos.',\n mfaKeywords: 'segurança argos senha autenticação mfa 2fa dois fatores duas etapas verificação',\n signedInAccount: 'Conta no Argos',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Verificação em duas etapas',\n twoFactorDescription: 'Um código além da senha para entrar.',\n twoFactorKeywords: 'mfa 2fa totp autenticador authenticator código e-mail método aparelho celular',\n recoveryCodes: 'Códigos de recuperação',\n recoveryCodesDescription: 'Para entrar se você perder o aparelho.',\n recoveryCodesKeywords: 'backup recuperação perdi celular aparelho mfa 2fa',\n sessions: 'Sessões e dispositivos',\n sessionsDescription: 'Onde a sua conta está conectada.',\n sessionsKeywords: 'dispositivos navegador ip encerrar desconectar sair aparelhos conectados',\n sessionsSection: 'Sessões',\n sessionsSectionDescription: 'Esta sessão, os tokens de aplicação e os dispositivos conectados.',\n sessionsSectionKeywords: 'sessão sessões token tokens dispositivos login segurança',\n about: 'Sobre',\n aboutKeywords: 'versão build ambiente dependências suporte',\n application: 'Aplicação',\n version: 'Versão',\n versionKeywords: 'release',\n buildDate: 'Data do build',\n environment: 'Ambiente',\n environmentKeywords: 'homologação produção',\n links: 'Links',\n linksKeywords: 'repositório documentação bug issue',\n docs: 'Documentação',\n reportIssue: 'Reportar problema',\n repository: 'Repositório',\n dependencies: 'Dependências',\n dependenciesDescription: 'Versões declaradas no package.json desta aplicação.',\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Informações para suporte',\n supportInfoDescription: 'Versão, ambiente, navegador e preferências, para colar no chamado.',\n supportInfoKeywords: 'ajuda chamado diagnóstico',\n noSessionToken: 'Nenhum token de sessão disponível.',\n tokenCopied: 'Token copiado. Não compartilhe: ele dá acesso à sua conta até expirar.',\n supportCopied: 'Informações copiadas. Cole no chamado de suporte.',\n copyBlocked: 'Não foi possível copiar. O navegador bloqueou o acesso à área de transferência.',\n },\n support: {\n application: 'Aplicação',\n version: 'Versão',\n build: 'Build',\n environment: 'Ambiente',\n page: 'Página',\n browser: 'Navegador',\n screen: 'Tela',\n theme: 'Tema',\n themeValue: '{theme} ({mode}) · família {family} · densidade {density} · fonte {font}',\n timeZone: 'Fuso',\n accessLevel: 'Nível de acesso',\n date: 'Data',\n },\n appTokens: {\n unavailable: 'Indisponível neste aplicativo: ele não está ligado ao argos-admin.',\n created: 'Token \"{name}\" criado — copie agora, ele não será mostrado de novo.',\n sendHeader: 'Envie no cabeçalho <code>x-app-token</code>. Vale até {date}, com as permissões do nível de acesso escolhido.',\n copyToken: 'Copiar token',\n saved: 'Já guardei',\n loading: 'Carregando…',\n expiredOn: 'Expirado em {date}',\n expiresOn: 'Expira em {date}',\n lastUsed: 'Último uso: {date}',\n never: 'nunca',\n revoke: 'Revogar',\n confirmRevoke: 'Confirmar revogação',\n empty: 'Você ainda não tem tokens nesta aplicação.',\n noBadges: 'Você não tem nenhum nível de acesso nesta aplicação para gerar tokens.',\n appOnly: 'Aplicação: <strong>{name}</strong> — o token só vale para ela.',\n accessLevel: 'Nível de acesso',\n name: 'Nome',\n namePlaceholder: 'Ex.: MCP do Claude no notebook',\n nameRequired: 'Dê um nome para reconhecer o token depois.',\n nameMax: 'Até 80 caracteres.',\n validity: 'Validade',\n days30: '30 dias',\n days90: '90 dias',\n months6: '6 meses',\n year1: '1 ano',\n create: 'Criar token',\n cancel: 'Cancelar',\n newToken: 'Novo token',\n validCount: '{valid} de {max} válidos',\n limit: 'Limite atingido: revogue um token para criar outro.',\n loadError: 'Não foi possível carregar seus tokens.',\n badgesError: 'Não foi possível carregar seus níveis de acesso.',\n createError: 'Não foi possível criar o token.',\n copied: 'Token copiado.',\n copyFailed: 'Não foi possível copiar. Selecione o texto e copie manualmente.',\n revoked: 'Token \"{name}\" revogado. Pode levar até 2 minutos para parar de funcionar em todos os sistemas.',\n revokeError: 'Não foi possível revogar o token.',\n },\n myGroups: {\n loading: 'Carregando…',\n loadError: 'Não foi possível carregar os membros do grupo.',\n roleAdministrator: 'Administrador',\n roleEditor: 'Editor',\n roleMember: 'Membro',\n listLabel: 'Seus grupos',\n back: 'Voltar aos grupos',\n you: 'você',\n membersCount: { zero: 'Nenhum membro', one: '{count} membro', other: '{count} membros' },\n empty: 'Nenhum membro neste grupo.',\n readOnly: 'Como membro, você só vê quem está no grupo.',\n addMember: 'Incluir membro',\n addHeading: 'Incluir em {group}',\n search: 'Pessoa',\n searchPlaceholder: 'Nome, login ou e-mail',\n searchHint: 'Digite ao menos 2 letras.',\n searching: 'Buscando…',\n noResults: 'Ninguém encontrado.',\n searchError: 'Não foi possível buscar pessoas.',\n alreadyMember: 'já é membro',\n role: 'Função',\n editorAddsMembers: 'Como Editor, você inclui pessoas como Membro.',\n add: 'Incluir',\n cancel: 'Cancelar',\n added: '{name} entrou no grupo.',\n addError: 'Não foi possível incluir o membro.',\n roleOf: 'Função de {name}',\n roleChanged: 'Função de {name}: {role}.',\n roleError: 'Não foi possível trocar a função.',\n remove: 'Remover',\n confirmRemove: 'Confirmar remoção',\n removed: '{name} saiu do grupo.',\n removeError: 'Não foi possível remover o membro.',\n },\n accountSecurity: {\n loading: 'Carregando…',\n loadError: 'Não foi possível carregar a sua conta no Argos.',\n retry: 'Tentar novamente',\n methodTotp: 'Aplicativo autenticador',\n methodEmail: 'E-mail',\n methodSms: 'SMS',\n active: 'Ativo',\n activeWithDetail: 'Ativo · {detail}',\n notRegistered: 'Não cadastrado',\n unavailable: 'Indisponível',\n requiredHint: 'Obrigatória neste ambiente: mantenha pelo menos um método.',\n add: 'Adicionar',\n replaceDevice: 'Trocar aparelho',\n remove: 'Remover',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n removeTitle: 'Remover {method}?',\n removeHint: 'Você deixa de poder usar este método para entrar.',\n removeLastHint: 'Sem nenhum método, os códigos de recuperação também deixam de valer.',\n reauthTitle: 'Confirme sua identidade',\n reauthHint: 'Por segurança, confirme antes de continuar. Vale por 5 minutos.',\n reauthHow: 'Como confirmar',\n reauthPassword: 'Senha',\n reauthRecoveryCode: 'Código de recuperação',\n currentPassword: 'Senha atual',\n passwordRequired: 'Informe a senha.',\n recoveryCode: 'Código de recuperação',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Informe o código.',\n recoveryCodeLength: 'O código tem 10 letras e números.',\n sendEmailCode: 'Enviar código para o e-mail cadastrado',\n sixDigitCode: 'Código de 6 dígitos',\n totpTitle: 'Escaneie o QR Code no aplicativo autenticador',\n qrAlt: 'QR Code para configurar o aplicativo autenticador',\n manualKey: 'Sem câmera? Digite a chave:',\n appCode: 'Código do aplicativo',\n emailTitle: 'Cadastrar e-mail',\n email: 'E-mail',\n emailPlaceholder: 'nome@empresa.com',\n emailRequired: 'Informe o e-mail.',\n emailInvalid: 'Informe um e-mail válido.',\n sendCode: 'Enviar código',\n emailCodeTitle: 'Confirme o e-mail',\n emailCodeHint: 'Digite o código de 6 dígitos enviado para {email}.',\n codesRemaining: { zero: 'Nenhum código disponível', one: '1 código disponível', other: '{count} códigos disponíveis' },\n codesHint: 'Cada um vale uma vez. Gerar novos invalida os anteriores.',\n codesNeedMethod: 'Cadastre um método de verificação para gerar códigos de recuperação.',\n generateCodes: 'Gerar códigos',\n regenerateCodes: 'Gerar novos códigos',\n codesTitle: 'Seus códigos de recuperação',\n codesShownOnce: 'Guarde num lugar seguro: eles não serão mostrados de novo. Cada um vale uma vez.',\n copyCodes: 'Copiar',\n downloadCodes: 'Baixar .txt',\n codesCopied: 'Códigos copiados.',\n copyFailed: 'Não foi possível copiar. Selecione os códigos e copie manualmente.',\n codesSaved: 'Guardei os códigos',\n codesFileHeader: 'Códigos de recuperação do Argos (cada um vale uma vez)',\n codesFileName: 'codigos-de-recuperacao.txt',\n notices: {\n methodAdded: 'Método cadastrado.',\n deviceReplaced: 'Aparelho trocado. O anterior não gera mais códigos válidos.',\n methodRemoved: 'Método removido.',\n codesRegenerated: 'Códigos de recuperação gerados. Os anteriores não valem mais.',\n reauthCodeSent: 'Enviamos um código para o e-mail cadastrado.',\n },\n errors: {\n generic: 'Não foi possível concluir. Tente novamente.',\n network: 'Não foi possível falar com o Argos. Verifique a conexão e tente novamente.',\n login_required: 'A sessão deste login terminou no Argos. Entre de novo para gerenciar a conta.',\n invalid_token: 'A sessão deste login terminou no Argos. Entre de novo para gerenciar a conta.',\n reauthentication_required: 'A confirmação de identidade venceu. Confirme de novo para continuar.',\n invalid_password: 'Senha incorreta.',\n account_locked: 'Muitas tentativas com a senha. A conta ficou bloqueada por alguns minutos.',\n invalid_code: 'Código incorreto.',\n invalid_recovery_code: 'Código de recuperação inválido ou já usado.',\n code_expired: 'O código venceu. Peça outro.',\n code_not_requested: 'Peça o código antes de digitá-lo.',\n too_many_attempts: 'Muitas tentativas. Espere alguns minutos e tente de novo.',\n too_many_requests: 'Espere um pouco antes de pedir outro código.',\n mfa_method_not_allowed: 'Este método não é aceito neste ambiente.',\n mfa_method_not_found: 'Este método já não estava cadastrado.',\n mfa_last_method: 'A verificação em duas etapas é obrigatória: mantenha pelo menos um método.',\n invalid_email: 'Informe um e-mail válido.',\n enrollment_not_started: 'O cadastro venceu. Comece de novo.',\n sms_not_available: 'SMS indisponível.',\n mfa_required_for_recovery_codes: 'Cadastre um método de verificação antes de gerar códigos.',\n session_not_found: 'A sessão já tinha sido encerrada.',\n },\n sessionsEmpty: 'Nenhuma sessão ativa.',\n thisSession: 'Esta sessão',\n thisBrowser: 'Este navegador',\n appsOnly: 'Só aplicativos',\n sessionDetail: 'IP {ip} · último uso {date}',\n unknownIp: 'desconhecido',\n sessionSince: 'Desde {date}',\n sessionApps: 'Aplicativos: {apps}',\n unnamedApp: 'Aplicativo',\n endSession: 'Encerrar',\n confirmEndSession: 'Confirmar encerramento',\n endOthers: 'Encerrar todas as outras',\n endOthersConfirm: {\n one: 'Encerrar a outra sessão? Os aplicativos abertos nela vão pedir login de novo.',\n other: 'Encerrar as {count} outras sessões? Os aplicativos abertos nelas vão pedir login de novo.',\n },\n sessionEndedNotice: 'Sessão encerrada.',\n othersEndedNotice: { zero: 'Nenhuma sessão encerrada.', one: '1 sessão encerrada.', other: '{count} sessões encerradas.' },\n },\n ratings: {\n rateScreen: 'Avaliar esta tela',\n rateApp: 'Avaliar o {app}',\n ratedApp: 'Sua avaliação do {app}',\n heading: 'Faça sua avaliação',\n subheading: 'Aproveite para deixar sua opinião',\n aboutScreen: 'Tela: {screen}',\n aboutApp: 'O {app} como um todo',\n score: 'Sua nota',\n scoreOf: '{value} de 10',\n scoreNamed: '{value} de 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Ruim', 2: 'Regular', 3: 'Bom', 4: 'Muito bom', 5: 'Excelente' },\n noScore: 'Sem nota',\n scaleHint: 'De 0 a 10: cada estrela vale 2 e meia estrela, 1. As setas mudam de meia em meia; clicar de novo na primeira meia estrela dá 0.',\n comment: 'Comentário',\n commentPlaceholder: 'O que funcionou, o que poderia melhorar (opcional)',\n submit: 'Avaliar',\n update: 'Atualizar',\n previous: 'Você avaliou em {date}. Pode mudar quando quiser.',\n scoreRequired: 'Escolha uma nota de 0 a 10.',\n loading: 'Carregando a sua avaliação…',\n thanks: 'Obrigado pela avaliação!',\n updated: 'Avaliação atualizada. Obrigado!',\n saveError: 'Não foi possível enviar a avaliação. Tente de novo.',\n period: 'Período',\n periods: { all: 'Tudo', d7: '7 dias', d30: '30 dias', d90: '90 dias' },\n refresh: 'Atualizar',\n appCard: 'A ferramenta',\n screensCard: 'As telas',\n appCardHint: 'Avaliação geral',\n screensCardHint: 'Avaliação geral das telas',\n scoreMax: '/10',\n average: 'Média',\n total: { zero: 'Nenhuma avaliação', one: '1 avaliação', other: '{count} avaliações' },\n comments: { zero: 'nenhum comentário', one: '1 comentário', other: '{count} comentários' },\n noRatings: 'Ainda não há avaliações no período.',\n distribution: 'Distribuição das notas',\n distributionRow: 'Nota {score}: {count} ({share})',\n ranking: 'Avaliações por tela e área',\n rankingHint: 'Compare as telas. Clique numa para ver as avaliações dela.',\n sort: 'Ordem',\n sorts: { worst: 'Piores primeiro', best: 'Melhores primeiro', most: 'Mais avaliadas' },\n noScreens: 'Nenhuma tela avaliada no período.',\n filterByScreen: 'Ver as avaliações de {screen}',\n recent: 'Avaliações recentes',\n recentHint: 'Da mais nova para a mais antiga.',\n filterScope: 'O que foi avaliado',\n allScopes: 'Ferramenta e telas',\n tool: 'A ferramenta',\n screens: 'As telas',\n filterScreen: 'Tela',\n allScreens: 'Todas as telas',\n filterScore: 'Nota',\n allScores: 'Todas as notas',\n withComment: 'Mostrar apenas com comentário',\n clearFilters: 'Limpar filtros',\n noComment: 'Sem comentário.',\n itemActions: 'Ações da avaliação',\n copyComment: 'Copiar comentário',\n commentCopied: 'Comentário copiado.',\n copyFailed: 'Não foi possível copiar o comentário.',\n showAppRatings: 'Ver avaliações da ferramenta',\n showScreenRatings: 'Ver avaliações desta tela',\n emptyList: 'Nenhuma avaliação com esses filtros.',\n pagination: 'Páginas das avaliações',\n unknownUser: 'Usuário',\n loadError: 'Não foi possível carregar as avaliações.',\n forbidden: 'Você não administra esta aplicação, ou está sem o crachá Administrador ativo.',\n updatedAt: 'Atualizado em {date} às {time}',\n details: 'Ver detalhes',\n detailsOf: '(avaliações de {name})',\n tabScreens: 'Telas',\n tabAreas: 'Áreas',\n tabTrends: 'Tendências',\n viewAll: 'Ver todas as avaliações',\n allHeading: 'Todas as avaliações',\n justNow: 'Agora há pouco',\n yesterdayAt: 'Ontem às {time}',\n dateAt: '{date} às {time}',\n sortsShort: { worst: 'Piores', best: 'Melhores', most: 'Mais avaliadas' },\n bands: { all: 'Todas as notas', bad: 'Ruins (abaixo de 5)', mid: 'Médias (5 a 6,9)', good: 'Boas (7 ou mais)' },\n bandFilter: 'Faixa da nota',\n filterArea: 'Área',\n allAreas: 'Todas as áreas',\n noArea: 'Sem área',\n filterByArea: 'Ver as telas de {area}',\n screensCount: { one: '1 tela', other: '{count} telas' },\n searchScreens: 'Buscar tela ou caminho…',\n searchScreensLabel: 'Buscar tela',\n searchAreas: 'Buscar área…',\n searchAreasLabel: 'Buscar área',\n tableEmpty: 'Nenhuma tela com esses filtros.',\n areasEmpty: 'Nenhuma área com esses filtros.',\n colScreen: 'Tela',\n colArea: 'Área',\n colScreens: 'Telas',\n colScore: 'Nota',\n colTotal: 'Avaliações',\n colComments: 'Comentários',\n colTrend: 'Tendência',\n colOpen: 'Abrir',\n tablePagination: 'Páginas das telas',\n areasPagination: 'Páginas das áreas',\n trendOf: 'Média por semana: de {first} para {last}',\n trendNone: 'Sem notas por semana no período.',\n trendCaption: 'Média por semana, de 0 a 10',\n trendEmpty: 'Sem avaliações no período para mostrar a tendência.',\n trendValue: '{series} {value}',\n trendWeek: 'Semana de {week}: {values} ({count})',\n aboutRating: 'Avaliação',\n aboutRatingKeywords: 'avaliar nota estrelas média opinião',\n rateAction: 'Avaliar',\n noRatingsYet: 'Ainda sem avaliações.',\n loadingAverage: 'Carregando a média…',\n averageError: 'Não foi possível carregar a média.',\n },\n notification: {\n genericError: 'Ocorreu um erro no processamento de sua solicitação.',\n },\n graphql: {\n noResponse: 'O serviço não respondeu.',\n serviceFailure: 'Falha no serviço.',\n done: 'Operação concluída.',\n failed: 'Não foi possível concluir a operação.',\n },\n access: {\n blockedText:\n 'Você não faz parte de nenhum grupo desta aplicação. Peça ao administrador dela para incluir você em um grupo e entre novamente.',\n blockedAction: 'Sair',\n noRightsText: 'Você não tem acesso a nenhuma página desta aplicação. Fale com o administrador dela para pedir acesso.',\n },\n session: {\n offline: 'Sem conexão com o servidor de autenticação. Você continua conectado; tentando reconectar…',\n reconnecting: 'Reconectando…',\n reauthorizing: 'Renovando sua sessão…',\n reauthorizationRequired: 'Sua sessão precisa ser confirmada. Nada do que está aberto será perdido.',\n signInAgain: 'Entrar novamente',\n callbackFailedHeading: 'Não foi possível concluir a entrada',\n callbackFailedText: 'O retorno do login veio incompleto ou expirou. Entre novamente para continuar.',\n logoutFailed: 'Não foi possível sair agora. Verifique a conexão e tente de novo.',\n },\n routing: {\n notPublished: 'Este endereço existe no seu acesso, mas a tela dele ainda não foi publicada.',\n notPublishedCode:\n 'Este endereço existe no seu acesso, mas a tela dele ainda não foi publicada. Informe o código {code} à equipe do Acropole.',\n },\n home: {\n noAccessTitle: 'Você ainda não tem acesso a nenhuma tela',\n noAccessText:\n 'O acesso é liberado pelo administrador da aplicação ou pelo administrador de um grupo com acesso a ela. Se ele já liberou, saia e entre de novo.',\n yourScreens: 'Suas telas',\n modules: 'Acesso rápido',\n privileged: 'Acesso privilegiado',\n recent: 'Continuar de onde parou',\n recentCaption: 'As telas que você abriu por último, da mais recente para a mais antiga.',\n screenCount: { one: '1 tela', other: '{count} telas' },\n favorite: 'Favoritar {name}',\n unfavorite: 'Remover {name} dos favoritos',\n favorites: 'Favoritos',\n morning: 'Bom dia',\n afternoon: 'Boa tarde',\n evening: 'Boa noite',\n greetingName: '{greeting}, {name}',\n intro: 'Acesse suas ferramentas e acompanhe as atualizações dos seus sistemas.',\n seeAll: 'Ver tudo',\n seeLess: 'Ver menos',\n recentActions: 'Mais ações para {name}',\n forgetRecent: 'Remover do histórico',\n explore: 'Explorar sistemas',\n exploreIntro: 'Acesse os principais módulos da plataforma.',\n news: 'Novidades',\n newsBadge: 'Atualizações',\n newsAll: 'Ver todas',\n favoritesEmpty: 'Toque no coração da barra de uma tela para ela aparecer aqui.',\n help: 'Ajuda e recursos',\n shortcuts: 'Atalhos do teclado',\n essentials: 'Rever o essencial',\n settings: 'Configurações',\n systemDocs: 'Documentação do sistema',\n },\n autoService: {\n loading: 'Carregando...',\n cancel: 'Cancelar',\n save: 'Salvar',\n create: 'Criar',\n edit: 'Editar',\n remove: 'Remover',\n search: 'Consultar',\n active: 'Ativo',\n inactive: 'Inativo',\n confirmChanges: 'Confirmar alterações',\n appsTitle: 'Aplicações',\n clientSections: 'Seções do cliente',\n tabRoutes: 'Rotas',\n tabRouters: 'Roteadores',\n tabAccess: 'Acesso',\n noClients:\n 'Você não administra este app. É preciso (a) estar no grupo de administração do projeto dele e (b) estar logado com o crachá <strong>Administrador</strong> ativo. Troque de crachá no menu do seu perfil, se disponível, ou peça acesso a quem administra o projeto.',\n clientsLoadError: 'Não foi possível carregar os clients que você administra (HTTP {status}). Isso não é falta de permissão: o Argos não respondeu. Tente de novo em instantes.',\n retryLoad: 'Tentar de novo',\n pickClient: 'Selecione o client que deseja administrar',\n pickGroup: 'Selecione um grupo',\n noDescription: 'Sem descrição cadastrada.',\n manageMembers: 'Gerenciar membros',\n membersCaption: 'Membros do grupo',\n noMembers: 'Nenhum membro neste grupo.',\n colUser: 'Usuário',\n colMemberSince: 'Membro desde',\n membersHeading: 'Membros — {group}',\n addUser: 'Adicionar usuário',\n userSearch: 'Buscar por nome, username ou email...',\n role: 'Função (opcional)',\n noRole: 'Membro (sem função)',\n add: 'Adicionar',\n suggestions: 'Sugestões',\n suggestionsHint: 'Quem já está em outros grupos deste sistema',\n suggestionGroups: 'Em {groups}',\n addSuggestion: 'Adicionar {name} ao grupo',\n membersTitle: 'Membros do grupo',\n memberSearch: 'Buscar membro...',\n membersOf: 'Membros do grupo {group}',\n noMembersShort: 'Nenhum membro.',\n newMember: 'Novo',\n addedBy: 'por {user}',\n removal: 'Remoção',\n removalEmpty: 'Marque membros na lista para removê-los do grupo. A remoção só vale ao salvar.',\n undoRemoval: 'Desfazer remoção',\n saveChanges: 'Salvar alterações',\n colRole: 'Função',\n colAddedAt: 'Adicionado em',\n newAccess: 'Novo acesso',\n newAccessHeading: 'Novo acesso',\n accessCaption: 'Acessos do client',\n noAccess: 'Nenhum acesso concedido ainda.',\n colGroup: 'Grupo',\n manageRoutes: 'Gerenciar rotas',\n group: 'Grupo',\n routesOf: 'Rotas de {group}',\n noPrivateRoutes: 'Nenhuma rota privada disponível pro badge deste grupo.',\n register: 'Cadastrar',\n secretCreated: 'Aplicação criada. Salve o secret agora, ele não será exibido novamente:',\n pickApp: 'Selecione uma aplicação',\n disable: 'Desativar',\n enable: 'Ativar',\n delete: 'Excluir',\n appSections: 'Seções da aplicação',\n tabOperations: 'Operações',\n tabAccesses: 'Acessos',\n editApp: 'Editar aplicação',\n newApp: 'Nova aplicação',\n name: 'Nome',\n grants: 'Grants (separados por vírgula)',\n appAccessCaption: 'Acessos da aplicação',\n noAppAccess: 'Nenhum grupo com acesso a esta aplicação ainda.',\n colType: 'Tipo',\n manageOperations: 'Gerenciar operações',\n colOperations: 'Operações',\n colGuards: 'Guards',\n colMembers: 'Membros',\n filterOperations: 'Filtrar operações',\n filterRoutes: 'Filtrar rotas',\n noFilterMatch: 'Nada encontrado para “{term}”.',\n routesTreeLabel: 'Rotas privadas',\n operationsOf: 'Operações de {group}',\n noOperations: 'Nenhuma operação registrada para esta aplicação ainda.',\n operationsCaption: 'Operações registradas',\n colIdentifier: 'Identificador',\n colMethod: 'Método',\n colLevel: 'Nível',\n colDescription: 'Descrição',\n colAllowedGroups: 'Grupos permitidos',\n groupCount: { one: '1 grupo', other: '{count} grupos' },\n newRouter: 'Novo roteador',\n routersCaption: 'Roteadores do client',\n noRouters: 'Nenhum roteador cadastrado ainda.',\n private: 'Privado',\n public: 'Público',\n editRouter: 'Editar roteador',\n page: 'Página (obrigatório)',\n hierarchy: 'Hierarquia (opcional)',\n levelHeader: 'Header',\n levelNavigation: 'Navegação',\n levelMenu: 'Menu',\n levelItem: 'Item',\n levelSubmenu: 'Submenu',\n privateHint: 'Privado (exige access + guard pra ser visível)',\n routerDescription: 'Descrição',\n routerDescriptionHint: 'O que a tela faz, em uma frase. Aparece abaixo do título, na barra da página. Em roteador herdado de template, o texto do template prevalece no próximo sync.',\n colPage: 'Página',\n colBuiltPath: 'Caminho',\n colVisibility: 'Visibilidade',\n colAllowedBadges: 'Crachás permitidos',\n anyBadge: 'Qualquer crachá',\n allowedBadgesHint: 'Vazio = qualquer crachá. Com um ou mais escolhidos, só os grupos com um desses crachás podem receber acesso a esta tela na aba Acesso.',\n newRoute: 'Nova rota',\n routesCaption: 'Rotas do client',\n noRoutes: 'Nenhuma rota cadastrada ainda.',\n editRoute: 'Editar rota',\n internalName: 'Nome interno',\n displayName: 'Nome de exibição',\n icon: 'Ícone',\n iconPlaceholder: 'ex.: home',\n path: 'Caminho (path)',\n info: 'Info',\n excludable: 'Excluível',\n excludableLocked: 'Rota protegida: só a administração central do Argos pode liberar a exclusão.',\n templateTag: 'Template',\n templateLocked: 'Veio do template da aplicação: só a administração central do Argos edita ou exclui.',\n pathPlaceholder: 'ex.: dashboard',\n pathHint: 'Um trecho só do endereço: letras minúsculas e hífen. O \"/\" entre níveis é o roteador que monta.',\n pathInvalid: 'Use só letras minúsculas (a–z) e hífen, sem \"/\", espaço, número ou acento, e sem hífen no início ou no fim.',\n optionalId: 'ID (opcional)',\n optionalIdPlaceholder: 'gerado automaticamente',\n optionalIdHint: 'Para manter homologação e produção com o mesmo id, cole o id do outro ambiente; vazio = gerado.',\n optionalIdInvalid: 'Informe um UUID (ex.: 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) ou deixe vazio.',\n idTaken: 'Já existe um cadastro com este id. Use outro ou deixe o campo vazio.',\n rotateSecret: 'Gerar novo segredo',\n confirmRotateSecretHeading: 'Gerar um novo segredo?',\n confirmRotateSecret: 'O segredo atual deixa de funcionar na hora; atualize o APP_SECRET do serviço que usa esta aplicação. Tokens já emitidos valem até expirar (até 1 hora).',\n rotatedSecretHeading: 'Novo segredo de {name}',\n rotatedSecretWarning: 'Copie agora: o segredo não será mostrado de novo.',\n rotatedSecretNote: 'O servidor guarda só um hash do segredo. Ao fechar esta janela não há como consultá-lo; se ele se perder, gere outro.',\n rotatedSecretLabel: 'Segredo da aplicação {name}',\n copySecret: 'Copiar',\n secretCopied: 'Segredo copiado.',\n rotatedSecretDone: 'Concluir',\n rotateSecretError: 'Não foi possível gerar o novo segredo. Tente de novo.',\n rotateSecretNotFound: 'Aplicação não encontrada neste client.',\n rotateSecretForbidden: 'Você não administra este client.',\n confirmDeleteAppHeading: 'Excluir aplicação?',\n confirmDeleteApp: 'A aplicação {name} será excluída e a credencial dela para de funcionar. Esta ação não pode ser desfeita.',\n confirmDeleteRouteHeading: 'Excluir rota?',\n confirmDeleteRoute: 'A rota {name} será excluída deste cliente. Esta ação não pode ser desfeita.',\n confirmDeleteRouterHeading: 'Excluir roteador?',\n confirmDeleteRouter: 'O roteador {path} será excluído e a página sai do menu. Esta ação não pode ser desfeita.',\n confirmRemoveAccessHeading: 'Remover acesso?',\n confirmRemoveAccess: 'O grupo {group} perde o acesso às rotas privadas deste cliente.',\n confirmRemoveConsumerHeading: 'Remover acesso à aplicação?',\n confirmRemoveConsumer: 'O grupo {group} deixa de consumir esta aplicação e perde as permissões de operação dela.',\n deleteDone: 'Exclusão concluída.',\n deleteError: 'Não foi possível excluir. Tente de novo.',\n colExcludable: 'Excluível',\n excludableYes: 'Sim',\n excludableNo: 'Não',\n colName: 'Nome',\n colDisplay: 'Display',\n colIcon: 'Ícone',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copiar o ID da rota {name}',\n copyRouterId: 'Copiar o ID do roteador {name}',\n idCopied: 'ID copiado',\n reorder: 'Reordenar',\n reorderTitle: 'Reordenar menu',\n reorderHint: 'Mude a ordem em que os itens aparecem no menu do app: arraste pela alça (ou, no teclado, Espaço na alça e as setas) ou use os botões de subir e descer. Para ordenar o que fica dentro de um item, entre nele.',\n reorderPath: 'Nível do menu',\n reorderRoot: 'Topo do menu',\n reorderListLabel: 'Ordem em {name}',\n reorderEmpty: 'Nenhum roteador cadastrado para ordenar.',\n moveUp: 'Mover {name} para cima',\n moveDown: 'Mover {name} para baixo',\n openLevel: 'Ordenar o que fica dentro de {name}',\n childCount: { one: '1 item dentro', other: '{count} itens dentro' },\n movedTo: '{name}: posição {position} de {total}',\n reorderLoadError: 'Não foi possível carregar o menu. Tente de novo.',\n reorderSaveError: 'Não foi possível salvar a ordem. Nada foi perdido: tente de novo.',\n reorderSave: 'Salvar ordem',\n newGroup: 'Novo grupo',\n editGroup: 'Editar grupo',\n noGroups: 'Nenhum grupo cadastrado ainda.',\n accessLevel: 'Nível de acesso',\n pickAccessLevel: 'Selecione o nível',\n noLevel: 'Sem nível',\n noGroupsOfLevel: 'Nenhum grupo neste nível.',\n colStatus: 'Status',\n groupName: 'Nome',\n groupType: 'Tipo',\n groupTypePlaceholder: 'Selecione o tipo',\n groupDescription: 'Descrição (opcional)',\n confirmDeleteGroupHeading: 'Excluir grupo?',\n confirmDeleteGroup:\n 'O grupo {name} será excluído junto com os membros, os acessos a telas e as permissões em aplicações. Esta ação não pode ser desfeita.',\n groupSaveError: 'Não foi possível salvar o grupo. Tente de novo.',\n membersSaveError: 'Não foi possível salvar todas as alterações dos membros. Confira a lista e tente de novo.',\n noApps: 'Nenhuma aplicação cadastrada ainda.',\n tabTokens: 'Tokens',\n tokensCaption: 'Tokens da aplicação',\n noTokens: 'Nenhum token criado para esta aplicação ainda.',\n newToken: 'Novo token',\n colTokenPrefix: 'Início do token',\n colExpiresAt: 'Expira em',\n colLastUsed: 'Último uso',\n tokenExpired: 'Expirado',\n tokenRevoked: 'Revogado',\n neverUsed: 'Nunca',\n revokeToken: 'Revogar',\n confirmRevokeTokenHeading: 'Revogar token?',\n confirmRevokeToken: 'O token {name} deixa de funcionar na hora. A revogação não pode ser desfeita.',\n tokenRevokedDone: 'Token {name} revogado.',\n tokenRevokeError: 'Não foi possível revogar o token. Tente de novo.',\n tokensLoadError: 'Não foi possível carregar os tokens da aplicação.',\n tokenName: 'Nome',\n tokenDescription: 'Descrição (opcional)',\n tokenExpiresAt: 'Expira em',\n tokenExpiresHint: 'De amanhã até 365 dias a partir de hoje.',\n tokenExpiresInvalid: 'Escolha uma data entre amanhã e 365 dias a partir de hoje.',\n tokenOperations: 'Operações liberadas ao token',\n tokenOperationsNote: 'Nada vem marcado: o token não tem login, então marque as operações protected e private que ele pode chamar. As public não precisam de token.',\n freeForAll: 'liberada para todos',\n freeForAuthenticated: 'liberada para autenticados',\n freeNoPermission: 'não depende de permissão',\n publicNoToken: 'pública: não precisa de token',\n createToken: 'Criar token',\n tokenSaveError: 'Não foi possível criar o token. Tente de novo.',\n tokenCreatedHeading: 'Token {name} criado',\n tokenCreatedWarning: 'Copie agora: o token não será mostrado de novo.',\n tokenCreatedNote: 'Envie no cabeçalho x-api-token. O servidor guarda só um hash do token; se ele se perder, revogue e crie outro.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copiar',\n tokenCopied: 'Token copiado.',\n hierarchyHint: 'De cima para baixo: Navegação só com Header, Menu só com Navegação, Item só com Menu e Submenu só com Item. Limpar um nível limpa os de baixo.',\n routerSaveError: 'Não foi possível salvar o roteador. Tente de novo.',\n permissionsSaveError: 'Não foi possível salvar todas as alterações das operações. Reabra o painel e confira.',\n permissionsSummaryGroup: '{marked} de {total} operações protegidas liberadas para o grupo.',\n permissionsSummaryToken: '{marked} de {total} operações liberadas para o token.',\n permissionsFreeGroup: {\n one: '1 operação não depende de permissão (public ou private) e aparece marcada.',\n other: '{count} operações não dependem de permissão (public ou private) e aparecem marcadas.',\n },\n permissionsFreeToken: {\n one: '1 operação public não precisa de token e não pode ser liberada.',\n other: '{count} operações public não precisam de token e não podem ser liberadas.',\n },\n permissionsFolderCount: '{marked} de {total}',\n permissionsTreeLabel: 'Operações',\n tokenErrors: {\n invalidExpiresAt: 'Data de validade inválida. Escolha outra data.',\n invalidValidity: 'A validade precisa ficar entre amanhã e 365 dias a partir de hoje.',\n invalidOperationIds: 'Alguma operação escolhida não existe mais nesta aplicação. Reabra o formulário e escolha de novo.',\n operationNotProtected: 'Só operações protected podem ser liberadas a um grupo; as public e private já valem para ele.',\n operationPublic: 'Operação pública não precisa de token e não pode ser liberada a ele. Desmarque-a e tente de novo.',\n appNotFound: 'Aplicação não encontrada neste client. Ela pode ter sido excluída.',\n tokenNotFound: 'Token não encontrado nesta aplicação. Ele pode já ter sido revogado.',\n },\n routerErrors: {\n hierarchyGap: 'A hierarquia tem um nível vazio no meio: cada nível precisa do de cima (Header → Navegação → Menu → Item → Submenu). Preencha o nível que falta ou limpe os de baixo.',\n invalidAllowedTypes: 'Algum crachá escolhido não existe mais. Revise os crachás permitidos.',\n },\n groupErrors: {\n invalidType: 'Esse tipo de grupo não existe mais. Escolha outro tipo.',\n adminTypeReserved: 'O tipo Administrador é só do grupo de administração do projeto.',\n emptyUpdate: 'Nada para salvar: nenhum campo foi alterado.',\n groupProjectImmutable: 'O grupo não muda de projeto.',\n groupNameTaken: 'Já existe um grupo com esse nome neste projeto.',\n adminGroupImmutable: 'O grupo de administração não muda de nome, de tipo nem é desativado.',\n adminGroupProtected: 'O grupo de administração do projeto não pode ser excluído.',\n adminGroupLastMember: 'O grupo de administração não pode ficar sem membros.',\n adminGroupAccessProtected: 'O acesso do grupo de administração a este app não pode ser removido.',\n groupNotFound: 'Grupo não encontrado neste projeto. Ele pode ter sido excluído.',\n },\n },\n autoServiceAudit: {\n title: 'Auditoria',\n period: 'Período',\n periodLastHour: 'Última hora',\n period24h: 'Últimas 24 horas',\n period7d: 'Últimos 7 dias',\n period30d: 'Últimos 30 dias',\n periodFromFilters: 'O período vem das datas escolhidas nos filtros.',\n filters: 'Filtros da auditoria',\n filterDates: 'Datas',\n filterApp: 'Aplicação',\n filterUser: 'Usuário',\n filterOperation: 'Operação',\n filterMethod: 'Método',\n filterOutcome: 'Resultado',\n filterEntry: 'Só ações do usuário',\n userPlaceholder: 'Nome do usuário',\n operationPlaceholder: 'Identificador ou nome da operação',\n methodRead: 'Leitura',\n methodWrite: 'Escrita',\n methodDelete: 'Exclusão',\n methodStream: 'Fluxo contínuo',\n outcomeSuccess: 'Sucesso',\n outcomeFailure: 'Falha',\n outcomeDenied: 'Negado',\n kpiTotal: 'Eventos',\n kpiTotalDescription: 'Tudo o que foi registrado no período.',\n kpiFailures: 'Falhas',\n kpiDenied: 'Negados',\n kpiShare: '{percent} do total',\n kpis: 'Resumo do período',\n timeline: 'Linha do tempo',\n timelineSummary: 'Eventos por intervalo, de {from} a {to}.',\n bucketSummary: '{time}: {total} eventos, {failures} falhas, {denied} negados',\n timelineEmpty: 'Sem eventos para desenhar no período.',\n topOperations: 'Operações mais chamadas',\n topUsers: 'Usuários mais ativos',\n topApps: 'Por aplicação',\n noTop: 'Nada no período.',\n failureCount: { one: '1 falha', other: '{count} falhas' },\n deniedCount: { one: '1 negado', other: '{count} negados' },\n filterBy: 'Filtrar por {name}',\n eventsCaption: 'Eventos do período, do mais recente para o mais antigo',\n colWhen: 'Quando',\n colApp: 'Aplicação',\n colUser: 'Usuário',\n colOperation: 'Operação',\n colMethod: 'Método',\n colOutcome: 'Resultado',\n colStatus: 'HTTP',\n colDuration: 'Duração',\n durationMs: '{ms} ms',\n pageItems: 'eventos',\n pageSize: 'por página',\n pageError: 'Não foi possível carregar esta página de eventos. Tente de novo.',\n loading: 'Carregando a auditoria…',\n emptyTitle: 'Nenhum evento no período',\n emptyText: 'Amplie o período ou tire filtros para ver mais.',\n clearFilters: 'Limpar filtros',\n errorTitle: 'Não foi possível carregar a auditoria',\n errorText: 'O servidor não respondeu como esperado. Tente de novo em instantes.',\n retry: 'Tentar de novo',\n rangeTooLarge: 'O período máximo é de 31 dias. Escolha datas mais próximas.',\n forbidden: 'Você não tem acesso à auditoria de uma das aplicações escolhidas.',\n anonymous: 'Sem usuário',\n detailHeading: 'Detalhe do evento',\n detailLoading: 'Carregando o detalhe completo…',\n detailError: 'Não foi possível carregar o detalhe completo; mostrando o resumo.',\n fieldWhen: 'Quando',\n fieldApp: 'Aplicação',\n fieldUser: 'Usuário',\n fieldActor: 'Tipo de ator',\n fieldIp: 'IP de origem',\n fieldOperation: 'Operação',\n fieldIdentifier: 'Identificador',\n fieldMethod: 'Método',\n fieldLevel: 'Nível',\n fieldPermission: 'Permissão',\n fieldOutcome: 'Resultado',\n fieldStatus: 'Status HTTP',\n fieldDuration: 'Duração',\n fieldRoute: 'Rota',\n fieldTarget: 'Alvo',\n fieldOrigin: 'Origem',\n originEntry: 'Ação do usuário',\n originInternal: 'Chamada entre aplicações',\n fieldTrace: 'Trace',\n fieldEventId: 'ID do evento',\n fieldMessage: 'Mensagem',\n fieldReceivedAt: 'Recebido em',\n fieldInstance: 'Instância do serviço',\n fieldSdk: 'SDK',\n fieldDetails: 'Detalhes',\n viewTrace: 'Ver cadeia (trace)',\n traceHeading: 'Cadeia da ação',\n traceLoading: 'Carregando a cadeia…',\n traceError: 'Não foi possível carregar a cadeia.',\n traceEmpty: 'Nenhum evento desta cadeia está nas aplicações do seu projeto.',\n traceHidden: {\n one: '1 evento desta cadeia é de uma aplicação fora do seu projeto e não aparece aqui.',\n other: '{count} eventos desta cadeia são de aplicações fora do seu projeto e não aparecem aqui.',\n },\n period6h: 'Últimas 6 horas',\n refresh: 'Atualizar',\n autoRefresh: 'Atualizar a cada 30 s',\n updatedAt: 'Atualizado às {time}',\n updating: 'Atualizando…',\n filterUserId: 'ID do usuário',\n filterLevel: 'Nível',\n filterPermission: 'Permissão',\n filterActor: 'Tipo de ator',\n filterStatus: 'Status HTTP',\n filterTrace: 'Trace',\n userIdPlaceholder: 'UUID do usuário',\n statusPlaceholder: 'Ex.: 403',\n tracePlaceholder: '32 caracteres hexadecimais',\n levelPublic: 'Pública',\n levelPrivate: 'Privada',\n levelProtected: 'Protegida',\n levelOptional: 'Opcional',\n permissionAllowed: 'Permitido',\n permissionForbidden: 'Proibido',\n permissionUnauthorized: 'Não autenticado',\n permissionPublic: 'Pública',\n actorUser: 'Usuário',\n actorAppToken: 'Token de aplicação',\n actorApiToken: 'Token de API',\n actorPublic: 'Público',\n actorUnauthenticated: 'Não autenticado',\n forbiddenAdmin: 'Sua conta não tem a permissão de leitura da auditoria. Peça a um administrador as operações admin:audit:*.',\n invalidFilter: 'Algum filtro tem um valor inválido. {detail}',\n kpiFilterHint: '{share} · clique para filtrar',\n topsRange: '{from}–{to} de {total}',\n topsPrevious: 'Página anterior de {name}',\n topsNext: 'Próxima página de {name}',\n topsError: 'Não foi possível carregar esta lista.',\n filterByTrace: 'Filtrar a tabela por este trace',\n unitLabel: 'Ver por',\n unitActions: 'Ações',\n unitEvents: 'Eventos',\n kpiTotalActions: 'Ações',\n kpiTotalActionsDescription: 'Cada ação conta uma vez, com todas as etapas entre aplicações; o resultado é o pior entre elas.',\n timelineSummaryActions: 'Ações por intervalo, de {from} a {to}.',\n bucketSummaryActions: '{time}: {total} ações, {failures} com falha, {denied} negadas',\n timelineEmptyActions: 'Sem ações para desenhar no período.',\n actionsCaption: 'Ações do período, da mais recente para a mais antiga',\n pageItemsActions: 'ações',\n pageErrorActions: 'Não foi possível carregar esta página de ações. Tente de novo.',\n emptyTitleActions: 'Nenhuma ação no período',\n colSpans: 'Spans',\n spansApps: 'Aplicações: {apps}',\n spansHidden: {\n one: 'mais 1 span de aplicação fora do seu projeto',\n other: 'mais {count} spans de aplicações fora do seu projeto',\n },\n actionDetailHeading: 'Detalhe da ação',\n orphanNote: 'A entrada desta ação não está no período (ou não foi registrada): ela aparece a partir da primeira chamada entre aplicações.',\n orphanTag: 'sem entrada',\n spansHeading: 'Spans da ação',\n spansSummary: '{count} spans em {duration}',\n spanRow: '{app}, {operation}: {outcome}, começa em +{offset}, dura {duration}',\n },\n loginAttempts: {\n refresh: 'Atualizar',\n user: 'Usuário',\n userPlaceholder: 'Usuário, e-mail ou identificador digitado',\n period: 'Período',\n result: 'Resultado',\n method: 'Método',\n all: 'Todos',\n clear: 'Limpar',\n advancedFilters: 'Filtros avançados',\n ip: 'IP ou rede',\n ipPlaceholder: '10.0.0.5 ou 10.0.0.0/8',\n ipHint: 'IP exato ou rede em notação CIDR.',\n reason: 'Motivo',\n caption: 'Tentativas de login',\n pageItems: 'tentativas',\n pageSize: 'Tentativas por página',\n colDate: 'Data/hora',\n colResult: 'Resultado',\n colMethod: 'Método',\n colUser: 'Usuário',\n colReason: 'Motivo',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Navegador',\n filterByIp: 'Filtrar por este IP',\n filterByUser: 'Filtrar por este usuário',\n noMatchingUser: 'sem usuário correspondente',\n methods: { local: 'Senha', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Sucesso', failure: 'Falha', cancelled: 'Cancelada' },\n reasons: {\n bad_password: 'Senha incorreta',\n unknown_user: 'Usuário inexistente ou inativo',\n locked: 'Conta bloqueada por tentativas',\n mfa_failed: 'Código de verificação incorreto',\n mfa_expired: 'Código de verificação vencido',\n mfa_not_allowed: 'Método de verificação não permitido',\n mfa_invalid_method: 'Método de verificação desconhecido',\n recovery_failed: 'Código de recuperação incorreto ou já usado',\n recovery_refused: 'Código de recuperação recusado',\n not_linked: 'Conta externa não vinculada',\n wrong_realm: 'Usuário de outro realm',\n },\n forbiddenAdmin: 'Sua conta não pode consultar as tentativas de login. Peça a um administrador a operação admin:attempts:list.',\n forbiddenClient: 'Só o grupo de administração do projeto, com o crachá Administrador ativo, vê as tentativas de login desta aplicação.',\n loadErrorDetail: 'Não foi possível carregar as tentativas: {detail}',\n loadError: 'Não foi possível carregar as tentativas de login.',\n },\n accountFeatures: {\n aiAgent: 'Conectar um agente de IA',\n aiAgentDescription: 'Gera o token e a configuração MCP para colar no Claude Code.',\n aiAgentKeywords: 'ia agente claude mcp assistente llm automação',\n aiAgentHelp: 'O agente usa um token de aplicação pessoal (x-app-token) com as permissões do nível de acesso escolhido. Revogue em \"Tokens de aplicação\" quando não precisar mais.',\n aiAgentStart: 'Conectar agente',\n aiAgentServers: 'Servidores MCP',\n aiAgentAccess: 'Acesso do agente',\n aiAgentReadOnly: 'Só leitura',\n aiAgentReadWrite: 'Leitura e escrita',\n aiAgentWriteHint: 'O agente poderá alterar dados em seu nome. Prefira só leitura quando bastar.',\n aiAgentReadOnlyServer: '{name} (só leitura)',\n aiAgentTokenName: 'Agente de IA ({date})',\n aiAgentGenerate: 'Gerar configuração',\n aiAgentSelectServer: 'Escolha pelo menos um servidor.',\n aiAgentResult: 'Configuração pronta',\n aiAgentResultHint: 'Cole em .mcp.json, na raiz do projeto (Claude Code). O token aparece só agora: copie antes de concluir. Vale até {date}.',\n aiAgentCopy: 'Copiar configuração',\n aiAgentCopied: 'Configuração copiada. Não compartilhe: ela contém o seu token.',\n aiAgentDone: 'Concluir',\n aiAgentCreateError: 'Não foi possível gerar o token do agente.',\n aiAgentUnavailable: 'Indisponível neste aplicativo: ele não está ligado ao argos-admin.',\n activity: 'Atividade da conta',\n activityDescription: 'Entradas e tentativas que falharam nos últimos 90 dias.',\n activityKeywords: 'login entrada acesso histórico tentativa falha ip navegador segurança',\n activityFilter: 'Mostrar',\n activityAll: 'Todas',\n activityFailures: 'Só falhas',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Aplicativo: {app}',\n activityEmpty: 'Nada nos últimos 90 dias.',\n activityMore: 'Carregar mais',\n activityShowing: '{shown} de {total}',\n activityLoadError: 'Não foi possível carregar a atividade da conta.',\n unknownIp: 'desconhecido',\n unknownApp: 'sem nome',\n idle: 'Encerrar por inatividade',\n idleDescription: 'Sai sozinho depois de um tempo sem uso, com um aviso antes.',\n idleKeywords: 'inatividade ocioso tempo sair automático logout segurança bloqueio',\n idleNever: 'Nunca',\n idleOption: '{minutes} min',\n idleLimitHint: 'Esta aplicação encerra a sessão em no máximo {minutes} min sem uso.',\n idleWarningHeading: 'A sessão vai ser encerrada',\n idleWarningText: { one: 'Nenhuma atividade há algum tempo. A sessão termina em {count} segundo.', other: 'Nenhuma atividade há algum tempo. A sessão termina em {count} segundos.' },\n idleStay: 'Continuar conectado',\n idleLogout: 'Sair agora',\n startPage: 'Tela inicial',\n startPageDescription: 'Onde a aplicação abre depois do login.',\n startPageKeywords: 'início home abertura login favorito última tela',\n startHome: 'Início',\n startLast: 'Última tela visitada',\n startFavorite: 'Favorito: {name}',\n startPageHint: 'Marque telas como favoritas para abrir numa delas.',\n defaultBadge: 'Crachá padrão',\n defaultBadgeDescription: 'Nível de acesso com que você entra nesta aplicação, em qualquer navegador.',\n defaultBadgeKeywords: 'crachá badge nível acesso perfil padrão login',\n defaultBadgeAuto: 'Automático (o de menor nível)',\n defaultBadgeSaved: 'Crachá padrão salvo. Vale a partir do próximo login.',\n defaultBadgeError: 'Não foi possível salvar o crachá padrão.',\n defaultBadgeLoadError: 'Não foi possível carregar os seus crachás.',\n notices: 'Notificações',\n noticesDescription: 'Os avisos que esta aplicação mostra.',\n noticesKeywords: 'notificação aviso alerta navegador push',\n browserNotices: 'Avisos do navegador',\n browserNoticesDescription: 'Aviso do sistema quando a aba está em segundo plano.',\n browserNoticesDenied: 'O navegador bloqueou as notificações deste site. Libere nas configurações do navegador.',\n browserNoticesUnsupported: 'Este navegador não mostra notificações.',\n noticeOpen: 'Abrir',\n sync: 'Preferências na conta',\n syncDescription: 'Aparência, região, favoritos e as demais preferências acompanham você em qualquer navegador.',\n syncKeywords: 'sincronizar nuvem conta navegador preferências backup',\n syncSynced: 'Sincronizado às {time}',\n syncSaving: 'Salvando…',\n syncLocal: 'Só neste navegador: a conta não está disponível.',\n syncError: 'Não foi possível sincronizar. Tente de novo.',\n syncNow: 'Sincronizar agora',\n },\n suggestions: {\n button: 'Sugerir melhoria',\n buttonHint: 'Sugerir uma melhoria para esta tela',\n modalTitle: 'Sugerir melhoria',\n intro: 'Conte o que facilitaria o seu trabalho. Quem administra a aplicação recebe o pedido e responde por aqui.',\n kind: 'Tipo',\n kinds: { melhoria: 'Melhoria', nova_funcionalidade: 'Nova funcionalidade', problema: 'Problema', outro: 'Outro' },\n statuses: {\n em_analise: 'Em análise', planejada: 'Planejada', em_desenvolvimento: 'Em desenvolvimento',\n concluida: 'Concluída', recusada: 'Recusada',\n },\n legacyStatuses: { nova: 'Nova' },\n title: 'Título',\n titlePlaceholder: 'Ex.: Filtrar a lista por data',\n titleRequired: 'Informe um título.',\n description: 'Descrição',\n descriptionHint: 'O que você tentou fazer, o que esperava e por que ajudaria.',\n screen: 'Tela',\n screenHint: 'De onde vem a sugestão. Ajuste se for de outra tela.',\n send: 'Enviar sugestão',\n cancel: 'Cancelar',\n sent: 'Sugestão enviada. Obrigado!',\n sendError: 'Não foi possível enviar a sugestão. Tente de novo.',\n similarHeading: 'Já pediram nesta tela',\n similarHint: 'Se for o mesmo pedido, apoie em vez de repetir.',\n vote: 'Também quero',\n voted: 'Você apoia',\n votes: { one: '{count} apoio', other: '{count} apoios' },\n voteError: 'Não foi possível registrar o apoio.',\n yours: 'Sua',\n mine: 'Minhas sugestões',\n mineEmpty: 'Você ainda não enviou sugestões nesta aplicação.',\n mineError: 'Não foi possível carregar as suas sugestões.',\n loadMore: 'Carregar mais',\n statusFilter: 'Status',\n allStatuses: 'Todos',\n adminReply: 'Resposta da administração',\n sentAt: 'Enviada em {date}',\n boardLabel: 'Quadro de sugestões',\n search: 'Buscar sugestões',\n kindFilter: 'Tipo',\n allKinds: 'Todos os tipos',\n refresh: 'Atualizar',\n boardEmpty: 'Nenhuma sugestão ainda',\n boardEmptyHint: 'Os pedidos feitos pelo botão \"Sugerir melhoria\" das telas aparecem aqui.',\n boardFiltered: '{shown} de {total} sugestões',\n loadError: 'Não foi possível carregar as sugestões.',\n moveError: 'Não foi possível mover a sugestão. O quadro foi recarregado.',\n removedAuthor: 'Pessoa removida',\n noScreen: 'Sem tela',\n noDescription: 'Sem descrição.',\n requestedBy: 'Pedida por',\n requestedAt: 'Em',\n status: 'Status',\n statusSaved: 'Status atualizado.',\n statusError: 'Não foi possível mudar o status.',\n history: 'Histórico',\n historyEmpty: 'Sem movimentações ainda.',\n eventStatus: '{actor} moveu de {from} para {to}',\n eventComment: '{actor} comentou',\n someone: 'Alguém',\n comment: 'Comentário para quem pediu',\n commentHint: 'Quem pediu vê na página \"Sugestões do app\".',\n commentSend: 'Comentar',\n commentSent: 'Comentário enviado.',\n commentError: 'Não foi possível enviar o comentário.',\n commentRequired: 'Escreva o comentário.',\n viewLabel: 'Visualização',\n viewBoard: 'Quadro',\n viewArchive: 'Arquivo',\n kpis: 'Indicadores das sugestões',\n kpiOpen: 'Em andamento',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Concluídas em {days} dias',\n kpiDoneToday: '+{count} hoje',\n kpiDoneNoneToday: 'Nenhuma concluída hoje',\n kpiOverdueTrend: '+{count} desde ontem',\n kpiOverdueSteady: 'Nenhuma nova desde ontem',\n kpiSoon: 'Vencendo em breve',\n kpiMineHint: 'Abertas com você entre os responsáveis',\n kpiPriority: 'Abertas por prioridade',\n kpiPriorityNone: 'Nenhuma aberta',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Filtros do quadro',\n moreFilters: 'Mais filtros',\n moreFiltersActive: 'Mais filtros ({count})',\n allBoardStatuses: 'Todos os status',\n newTaskIn: 'Nova tarefa em {status}',\n newTaskOptions: 'Criar em outra coluna',\n columnOldest: 'Mais antiga há {age}',\n columnOverdue: { one: '{count} vencida', other: '{count} vencidas' },\n columnEmpty: 'Nenhuma tarefa nesta coluna.',\n columnEmptyFiltered: 'Nenhuma tarefa com estes filtros.',\n columnEmptyHints: {\n em_analise: 'Os pedidos novos chegam aqui para a equipe avaliar.',\n planejada: 'O que já foi aceito e espera a vez de ser feito.',\n em_desenvolvimento: 'O que a equipe está fazendo agora.',\n concluida: 'As entregas dos últimos {days} dias ficam aqui.',\n },\n duration: { days: '{d}d {h}h', hours: '{h}h {m}min', minutes: '{m}min' },\n createdOn: 'Criada em {date}',\n dueWithin: 'No prazo · até {date}',\n dueLateDays: { one: 'Vencida há {count} dia', other: 'Vencida há {count} dias' },\n screenFilter: 'Tela',\n allScreens: 'Todas as telas',\n authorFilter: 'Quem pediu',\n allAuthors: 'Todas as pessoas',\n sort: 'Ordenar',\n sorts: { position: 'Ordem do quadro', votes: 'Mais votadas', recent: 'Mais recentes' },\n sortHint: 'Com esta ordenação, arrastar só muda a coluna (o cartão vai para o fim dela).',\n clearFilters: 'Limpar filtros',\n topVoted: 'Mais votada',\n comments: { one: '{count} comentário', other: '{count} comentários' },\n statusSince: 'Desde {date}',\n openScreen: 'Abrir a tela',\n statusChange: 'Mudar o status',\n statusComment: 'Comentário (opcional)',\n statusCommentHint: 'Vai junto com a mudança; a pessoa vê em \"Minhas sugestões\".',\n statusApply: 'Mudar status',\n archiveLabel: 'Arquivo de sugestões',\n archiveSearch: 'Buscar no arquivo',\n archiveEmpty: 'Nada no arquivo',\n archiveEmptyHint: 'Sugestões recusadas e as concluídas há mais de {days} dias aparecem aqui.',\n archiveCount: { one: '{count} sugestão no arquivo', other: '{count} sugestões no arquivo' },\n closedOn: { concluida: 'Concluída em {date}', recusada: 'Recusada em {date}' },\n pagination: 'Páginas do arquivo',\n reopen: 'Reabrir',\n reopened: 'Sugestão reaberta: voltou para Em análise.',\n reopenError: 'Não foi possível reabrir a sugestão.',\n newTask: 'Nova tarefa',\n addTaskPlaceholder: 'Título da tarefa (Enter cria)',\n taskCreated: 'Tarefa criada.',\n createError: 'Não foi possível criar a tarefa.',\n saveError: 'Não foi possível salvar. Tente de novo.',\n kpiMine: 'Atribuídas a mim',\n kpiOverdue: 'Vencidas',\n assigneeFilter: 'Responsável',\n allAssignees: 'Qualquer responsável',\n assigneeMine: 'Minhas',\n assigneeNone: 'Sem responsável',\n labelFilter: 'Rótulo',\n allLabels: 'Todos os rótulos',\n priorityFilter: 'Prioridade',\n allPriorities: 'Todas as prioridades',\n dueFilter: 'Prazo',\n dueAny: 'Qualquer prazo',\n dueOverdueFilter: 'Vencidas',\n dueSoonFilter: 'Vencem hoje ou amanhã',\n priority: 'Prioridade',\n priorities: { urgente: 'Urgente', alta: 'Alta', media: 'Média', baixa: 'Baixa' },\n dueOn: 'Até {date}',\n dueToday: 'Vence hoje',\n dueTomorrow: 'Vence amanhã',\n dueLate: 'Venceu em {date}',\n checklistSpoken: '{done} de {total} itens feitos',\n moreAssignees: '+{count}',\n cardMenu: 'Ações de {key}',\n menuStatus: 'Alterar status',\n menuAssignMe: 'Atribuir a mim',\n menuCopyLink: 'Copiar link',\n menuCopyKey: 'Copiar chave',\n menuLabel: 'Rótulos',\n menuNoLabels: 'Nenhum rótulo no app',\n menuPriority: 'Prioridade',\n menuArchive: 'Arquivar',\n menuRestore: 'Restaurar no quadro',\n menuDelete: 'Excluir',\n labelColorName: 'Cor {n}',\n linkCopied: 'Link copiado.',\n keyCopied: 'Chave copiada.',\n copyError: 'Não foi possível copiar.',\n deleteHeading: 'Excluir {key}?',\n deleteMessage: 'A tarefa, o checklist, os comentários e as atividades saem de vez. Não dá para desfazer.',\n deleteConfirm: 'Excluir',\n deleted: 'Tarefa excluída.',\n archivedToast: 'Tarefa arquivada: está no Arquivo.',\n restoredToast: 'Tarefa de volta ao quadro.',\n assignedToMe: 'Atribuída a você.',\n archivedTag: 'Arquivada',\n taskLabel: 'Tarefa',\n close: 'Fechar',\n editTitle: 'Editar título',\n editDescription: 'Editar descrição',\n save: 'Salvar',\n checklist: 'Checklist',\n checklistAdd: 'Adicionar item',\n checklistPlaceholder: 'Novo item (Enter adiciona)',\n checklistOnCard: 'Mostrar no cartão',\n checklistEmpty: 'Sem itens ainda.',\n checklistRemove: 'Remover \"{text}\"',\n checklistUp: 'Subir \"{text}\"',\n checklistDown: 'Descer \"{text}\"',\n tabComments: 'Comentários',\n tabActivity: 'Histórico',\n commentsEmpty: 'Sem comentários ainda.',\n activityEmpty: 'Sem atividades ainda.',\n commentInternal: 'Só para a equipe (interno: quem pediu não vê)',\n internalTag: 'Interno',\n activity: {\n created: '{actor} criou a tarefa',\n title: '{actor} renomeou de \"{from}\" para \"{to}\"',\n description: '{actor} editou a descrição',\n kind: '{actor} mudou o tipo de {from} para {to}',\n priority: '{actor} mudou a prioridade de {from} para {to}',\n start_date: '{actor} marcou o início para {to}',\n start_date_removed: '{actor} tirou a data de início',\n due_date: '{actor} marcou a conclusão para {to}',\n due_date_removed: '{actor} tirou a data de conclusão',\n cover: '{actor} trocou a capa',\n cover_removed: '{actor} tirou a capa',\n checklist_on_card: '{actor} mudou o checklist no cartão',\n screen: '{actor} mudou a tela para {to}',\n assignee_added: '{actor} atribuiu a {to}',\n assignee_removed: '{actor} tirou {from} dos responsáveis',\n watcher_added: '{actor} pôs {to} como envolvido',\n watcher_removed: '{actor} tirou {from} dos envolvidos',\n label_added: '{actor} pôs o rótulo {to}',\n label_removed: '{actor} tirou o rótulo {from}',\n checklist_added: '{actor} adicionou \"{to}\" ao checklist',\n checklist_done: '{actor} concluiu \"{to}\"',\n checklist_undone: '{actor} reabriu \"{to}\"',\n checklist_renamed: '{actor} renomeou \"{from}\" para \"{to}\" no checklist',\n checklist_removed: '{actor} removeu \"{from}\" do checklist',\n archived: '{actor} arquivou a tarefa',\n restored: '{actor} restaurou a tarefa no quadro',\n merged: '{actor} agrupou esta em {to}',\n merged_here: '{actor} agrupou {to} aqui',\n unmerged: '{actor} desagrupou esta de {from}',\n unmerged_here: '{actor} desagrupou {from} daqui',\n other: '{actor} alterou a tarefa',\n },\n assignees: 'Responsáveis',\n assignMe: 'Atribuir a mim',\n addAssignee: 'Adicionar responsável',\n watchers: 'Envolvidos',\n addWatcher: 'Adicionar envolvido',\n removePerson: 'Tirar {name}',\n peopleSearch: 'Buscar pessoa',\n peopleEmpty: 'Ninguém encontrado.',\n nobody: 'Ninguém',\n reporter: 'Relator',\n originUser: 'Pedida pela tela',\n originTeam: 'Criada pela equipe',\n startDate: 'Início',\n dueDate: 'Conclusão',\n labels: 'Rótulos',\n addLabel: 'Rótulos',\n createLabel: 'Criar o rótulo \"{name}\"',\n labelColor: 'Cor do rótulo',\n noLabels: 'Sem rótulos',\n screenOrigin: 'Tela de origem',\n votesField: 'Apoios',\n createdAt: 'Criada em',\n updatedAt: 'Atualizada em',\n lastChange: 'Última alteração {when} por {actor}',\n lastChangeNoActor: 'Última alteração {when}',\n key: 'Chave',\n copyKey: 'Copiar a chave',\n newTaskHeading: 'Nova tarefa',\n createTask: 'Criar tarefa',\n draftHint: 'Responsáveis, checklist e comentários ficam disponíveis assim que a tarefa for criada.',\n assignMeOnCreate: 'Atribuir a mim',\n appSuggestions: 'Sugestões do app',\n listView: 'Quais sugestões mostrar',\n tabAll: 'Todas',\n tabMine: 'Minhas',\n appSearch: 'Buscar por título, descrição ou SUG-12',\n thisScreen: 'Desta tela',\n appSorts: { votes: 'Mais apoiadas', recent: 'Recentes' },\n appEmpty: 'Nenhuma sugestão por aqui ainda',\n appEmptyHint: 'Seja a primeira pessoa a sugerir uma melhoria.',\n appEmptyFiltered: 'Nenhuma sugestão com esses filtros.',\n appError: 'Não foi possível carregar as sugestões do app.',\n support: 'Apoiar {count}',\n supported: 'Apoiado {count}',\n ownSupportHint: 'É a sua sugestão: o seu interesse já conta.',\n publicComments: 'Comentários',\n publicCommentsEmpty: 'Ainda sem comentários de quem administra.',\n commentsError: 'Não foi possível carregar os comentários.',\n moreComments: 'Mais comentários',\n appPagination: 'Páginas das sugestões',\n menuMerge: 'Agrupar em…',\n mergeHeading: 'Agrupar {key} em…',\n mergeIntro: 'Escolha a sugestão principal. Quem pediu e quem apoiou esta passam para ela; esta sai do quadro e fica no arquivo, com os comentários.',\n mergeSearch: 'Buscar pela chave ou pelo título',\n mergeNone: 'Nenhuma sugestão aberta para agrupar.',\n mergeHasMerged: 'Outras sugestões estão agrupadas nesta. Desagrupe-as antes de agrupá-la em outra.',\n mergePreview: '{votes} e {reporters} passam para {key}.',\n mergeCalculating: 'Calculando o que passa…',\n mergePreviewError: 'Não foi possível calcular o agrupamento.',\n reportersCount: { one: '{count} relator', other: '{count} relatores' },\n mergeConfirmHeading: 'Agrupar {key} em {target}?',\n mergeConfirmMessage: 'Dá para desfazer depois, em \"Desagrupar\".',\n mergeConfirm: 'Agrupar',\n mergedToast: '{key} agrupada em {target}.',\n mergeError: 'Não foi possível agrupar a sugestão.',\n mergedTag: 'Agrupada',\n mergedInto: 'Agrupada em {key}',\n mergedIntoHint: 'Os apoios e quem pediu estão na principal; os comentários ficam aqui.',\n openMerged: 'Abrir {key}',\n unmerge: 'Desagrupar',\n unmergeLabel: 'Desagrupar {key}',\n unmergedToast: '{key} desagrupada: voltou ao quadro.',\n reporters: 'Relatores',\n reporterAuthor: 'Autor',\n reporterVia: 'via {key}',\n mergedHere: 'Agrupadas aqui',\n mergedFrom: '{key} agrupada em {target}',\n mergedFromHint: 'Pedidos iguais viraram um só: você acompanha por esta.',\n buttonMenu: 'Sugestões',\n openPage: 'Ver sugestões do app',\n screenPick: 'Tela',\n screenPickHint: 'A tela que deve mudar. Se ela ainda não existe, escolha \"Nova tela\".',\n screenPickPlaceholder: 'Busque pelo nome da tela',\n newScreenOption: 'Nova tela (ainda não existe)',\n newScreenName: 'Nome da nova tela',\n newScreenHint: 'Como você chamaria a tela e em que parte do menu ela ficaria.',\n newScreenRequired: 'Diga o nome da nova tela.',\n newScreenTag: 'Nova tela',\n waiting: { solicitante: 'Aguardando solicitante', responsaveis: 'Aguardando responsáveis' },\n waitingFilter: 'Aguardando',\n waitingAny: 'Qualquer situação',\n waitingClear: 'Ninguém (conversa em dia)',\n waitingSaved: 'Situação da conversa atualizada.',\n menuWaiting: 'Aguardando',\n groupFilter: 'Grupo',\n allGroups: 'Todos os grupos',\n requestingGroups: 'Grupos solicitantes',\n noGroups: 'Sem grupo (criada pela equipe)',\n unread: { zero: 'nenhuma nova', one: '{count} nova', other: '{count} novas' },\n fromRequester: 'Solicitante',\n cardChecklist: { one: '{count} atividade ({done}/{count})', other: '{count} atividades ({done}/{count})' },\n requestedByName: 'Pedida por {name}',\n tabSummary: 'Resumo',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter envia; Shift+Enter quebra a linha.',\n inbox: {\n label: 'Sugestões',\n comment: '{name}: {comment}',\n status: '{name} mudou o status para {status}',\n },\n page: {\n title: 'Sugestões do app',\n allTitle: 'Todas as sugestões',\n statusPart: '{count} {status}',\n description: 'Acompanhe o que você pediu, o que seu grupo pediu e as sugestões em que você está envolvido, e converse com os responsáveis.',\n reasons: { autor: 'Minhas', relator: 'Agrupadas', envolvido: 'Envolvido', responsavel: 'Responsável', grupo: 'Do meu grupo' },\n reasonHints: {\n autor: 'Você pediu esta sugestão.',\n relator: 'Um pedido seu foi agrupado nesta sugestão.',\n envolvido: 'A equipe incluiu você como envolvido.',\n responsavel: 'Você é responsável por esta sugestão.',\n grupo: 'Alguém do seu grupo pediu esta sugestão.',\n },\n reasonFilter: 'Por que vejo',\n allReasons: 'Todas',\n needsYou: 'Precisam da sua resposta',\n sorts: { activity: 'Atividade recente', recent: 'Mais novas', votes: 'Mais apoiadas' },\n empty: 'Nenhuma sugestão por aqui ainda.',\n emptyHint: 'Peça uma melhoria em \"Sugerir melhoria\": ela aparece aqui com a conversa.',\n emptyFiltered: 'Nenhuma sugestão com esses filtros.',\n error: 'Não foi possível carregar as sugestões.',\n count: { one: '{count} sugestão', other: '{count} sugestões' },\n pickOne: 'Escolha uma sugestão para ver os detalhes e a conversa.',\n notFound: 'Sugestão não encontrada, ou você não tem acesso a ela.',\n conversation: 'Conversa',\n conversationEmpty: 'Ninguém escreveu ainda.',\n conversationError: 'Não foi possível carregar a conversa.',\n olderMessages: 'Mensagens anteriores',\n reply: 'Sua mensagem',\n replyPlaceholder: 'Responda aos responsáveis, dê mais detalhes…',\n replySend: 'Enviar',\n replyError: 'Não foi possível enviar a mensagem.',\n readOnly: 'Você acompanha esta sugestão pelo seu grupo: dá para apoiar, mas a conversa é só de quem pediu, dos envolvidos e dos responsáveis.',\n team: 'Equipe',\n you: 'Você',\n groups: 'Grupos',\n details: 'Detalhes',\n listLabel: 'Sugestões',\n filtersLabel: 'Filtros',\n waitingYou: 'Os responsáveis aguardam a sua resposta.',\n waitingTeam: 'Aguardando os responsáveis.',\n },\n },\n};\n","import { SpineMessages } from './spine-messages';\n\nexport const SPINE_MESSAGES_EN: SpineMessages = {\n meta: { locale: 'en' },\n inbox: {\n title: 'Notifications',\n button: { zero: 'Notifications', one: 'Notifications, {count} new', other: 'Notifications, {count} new' },\n empty: 'Nothing new here.',\n error: 'Could not load the notifications.',\n retry: 'Try again',\n news: { one: '{count} update', other: '{count} updates' },\n },\n header: {\n home: 'Home',\n apps: 'Applications',\n themeDark: 'Dark theme',\n themeLight: 'Light theme',\n densityComfortable: 'Comfortable density',\n densityCompact: 'Compact density',\n fullscreen: 'Full screen',\n exitFullscreen: 'Exit full screen',\n user: 'User',\n accessLevels: 'Access levels',\n settings: 'Settings',\n appearance: 'Appearance',\n shortcuts: 'Keyboard shortcuts',\n news: \"What's new\",\n newsUnseen: '{label} ({count})',\n logout: 'Sign out',\n search: 'Search',\n searchPlaceholder: 'Search for a module or page…',\n searchFavorites: 'Favorites',\n searchRecent: 'Opened recently',\n searchModules: 'Modules',\n searchScreens: 'Screens',\n },\n navigation: {\n back: 'Back',\n home: 'Home',\n favorite: 'Add this page to favorites',\n unfavorite: 'Remove from favorites',\n copyLink: 'Copy page link',\n linkCopied: 'Link copied!',\n },\n sidebar: {\n modules: 'Modules',\n moduleNavigation: '{module} navigation',\n apps: 'Applications',\n },\n pageBar: {\n favorite: 'Add this page to favorites',\n unfavorite: 'Remove from favorites',\n copyLink: 'Copy page link',\n linkCopied: 'Link copied',\n docs: 'Documentation for this screen',\n trail: 'You are here',\n },\n pagePanel: {\n notFoundTitle: \"We couldn't find this page\",\n notFoundText: 'This address no longer exists. Close the tab and open the page from the menu.',\n },\n docs: {\n heading: 'Documentation',\n index: 'Documentation index',\n search: 'Search the documentation',\n noMatch: 'No page matches that term.',\n empty: 'No screen has documentation yet.',\n view: 'Documentation view',\n usage: 'How to use',\n technical: 'Technical specification',\n loading: 'Loading the documentation',\n loadError: \"Couldn't load this documentation.\",\n invite: 'Pick a page in the index to read its documentation.',\n },\n news: {\n heading: \"What's new\",\n close: 'Close',\n unseen: 'New',\n toastOne: \"What's new: {title}\",\n toastMany: '{count} updates',\n see: 'View',\n loading: 'Loading updates…',\n empty: 'No updates yet.',\n loadError: 'Could not load the updates.',\n retry: 'Try again',\n pages: 'List of updates',\n search: 'Search updates',\n searchPlaceholder: 'Search updates…',\n filters: 'Filter updates',\n filterAll: 'All',\n filterUnread: 'Unread',\n filterFavorites: 'Favorites',\n favorite: 'Add \"{title}\" to favorites',\n unfavorite: 'Remove \"{title}\" from favorites',\n noResults: 'No updates found.',\n home: 'Home',\n changes: 'What changed',\n before: 'Before',\n after: 'Now',\n markUnread: 'Mark as unread',\n gotIt: 'Got it',\n kindInformativo: 'Announcement',\n kindImplementacao: 'Release',\n kindAlteracao: 'Change',\n publishedOn: 'Published on {date}',\n editedOn: 'Edited on {date}',\n body: 'Update text',\n detailError: 'Could not open this update. It may have been taken down.',\n },\n autoServiceNews: {\n caption: 'App updates',\n empty: 'No updates yet. People who sign in to the app see here what changed.',\n newNews: 'New update',\n editNews: 'Edit update',\n newNewsIntro: 'Fill in the update that people will see in the app.',\n editNewsIntro: 'Change the information of the update that people will see in the app.',\n sectionMain: 'Main information',\n sectionMainHint: 'The title and the summary show in the updates list and on the Home card.',\n sectionBody: 'Update content',\n sectionBodyHint: 'Describe the details of the update. Use formatting, lists and links, and highlight what matters.',\n sectionPublish: 'Publishing',\n sectionUntil: 'Expiry (optional)',\n sectionAudience: 'Audience',\n preview: 'Preview on Home',\n previewTitle: 'Update title',\n previewSummary: 'The summary shows here.',\n previewNow: 'Published on save',\n tipTitle: 'Tip:',\n tipText: 'a short title and a direct summary stand out on Home.',\n untilDate: 'Last day it shows',\n audienceGroups: 'Groups',\n kind: 'Update type',\n kindInformativo: 'Announcement',\n kindImplementacao: 'Release',\n kindAlteracao: 'Change',\n sectionBodyHintImpl: 'A short introduction, if you want, and the list of what is new.',\n sectionBodyHintAlt: 'Show how it was before and how it is now. The introduction is optional.',\n intro: 'Introduction (optional)',\n items: 'What changed',\n itemsHint: 'One change per item, up to 300 characters. From 1 to 30 items.',\n itemPlaceholder: 'Describe a change',\n itemsEmpty: 'No changes in the list yet.',\n before: 'Before',\n after: 'Now',\n colTitle: 'Title',\n colPublishedAt: 'Published',\n colUntil: 'Valid until',\n colAudience: 'Audience',\n colAuthor: 'Author',\n colStatus: 'Status',\n statusScheduled: 'Scheduled',\n statusPublished: 'Published',\n statusExpired: 'Expired',\n audienceAll: 'Everyone',\n noUntil: 'No end',\n title: 'Title',\n summary: 'Summary',\n summaryHint: 'Write a short, direct summary. Up to 300 characters.',\n body: 'Text',\n bodyHint: 'Opens when the person clicks the update.',\n publishDate: 'Publish date',\n publishTime: 'Publish time',\n publishHint: 'A future date schedules the update. Without a date, it is published right away.',\n until: 'Valid until',\n untilHint: 'If left empty, the update never expires.',\n audience: 'Audience',\n audienceHint: 'Groups with access to the app. With no group, everyone who signs in sees it.',\n confirmDeleteHeading: 'Delete update',\n confirmDelete: 'Delete the update \"{title}\"? It disappears for everyone, including those who have not seen it.',\n saveError: 'Could not save the update.',\n loadError: 'Could not load the updates.',\n errors: {\n invalidTitle: 'Enter a title of up to 140 characters.',\n invalidSummary: 'The summary has up to 300 characters.',\n bodyTooLarge: 'The text is over the 64 KB limit.',\n invalidPublishedAt: 'Invalid publish date or time.',\n invalidUntil: 'Invalid expiry date.',\n invalidGroupIds: 'Some audience group no longer has access to the app. Review the audience.',\n untilBeforePublish: 'The expiry date cannot be before the publish date.',\n invalidKind: 'Invalid update type.',\n invalidItems: 'A release needs 1 to 30 changes, up to 300 characters each.',\n invalidCompare: 'A change needs both the before and the now.',\n compareTooLarge: 'The before or the now is over the 32 KB limit.',\n },\n },\n setup: {\n label: 'Initial setup',\n step: 'Step {current} of {total}',\n skip: 'Skip',\n back: 'Back',\n next: 'Continue',\n finish: 'Get started',\n close: 'Got it',\n greeting: 'Hi, {name}. Make it yours.',\n greetingAnonymous: 'Make it yours.',\n appearanceIntro: 'Choose how the systems look to you. Your choice applies to all of them and can be changed any time in settings.',\n preview: 'Preview',\n previewPage: 'Home',\n essentialsTitle: 'The essentials',\n essentialsIntro: 'Four things that help day to day.',\n searchTitle: 'Search any screen',\n searchText: 'Press {key} or use the search in the header to find screens, favorites and what you opened recently.',\n tabsTitle: 'Tabs and panels',\n tabsText: 'Each screen opens in a tab. Drag a tab to one side of the workspace to see two screens together.',\n favoritesTitle: 'Favorites',\n favoritesText: 'Mark the heart on a screen to show it on the home page and at the top of search.',\n settingsTitle: 'Settings',\n settingsText: 'Appearance, region, accessibility and account security are in your profile menu, or at {key}.',\n },\n shortcuts: {\n heading: 'Keyboard shortcuts',\n hint: 'Tip: press {key} at any time to reopen this panel.',\n essentials: 'Review the essentials',\n dismiss: 'Got it',\n openSearch: 'Open quick search',\n goHome: 'Go to Home',\n goFavorite: 'Go to favorite no. 1 to 9',\n history: 'Back / forward in history',\n openSettings: 'Open settings',\n toggleTheme: 'Toggle light / dark theme',\n fullscreen: 'Full screen',\n logout: 'Sign out',\n showHelp: 'Show this shortcuts panel',\n closeOverlay: 'Close open dialog / panel',\n },\n settings: {\n heading: 'Settings',\n appearance: 'Appearance',\n appearanceKeywords: 'visual colors theme layout',\n theme: 'Theme',\n themeDescription: 'Light, dark or the operating system one.',\n themeKeywords: 'dark mode light night',\n themeLight: 'Light',\n themeDark: 'Dark',\n themeSystem: 'System',\n accent: 'Main color',\n accentDescription: 'Color family for the header, buttons and highlights.',\n accentKeywords: 'family palette color accent',\n density: 'Density',\n densityDescription: 'Compact shows more information on screen.',\n densityKeywords: 'spacing size compact',\n comfortable: 'Comfortable',\n compact: 'Compact',\n font: 'Font',\n fontDescription: 'Typeface for the whole application.',\n fontKeywords: 'typography typeface text roboto rubik figtree geist',\n sidebar: 'Side menu',\n sidebarDescription: 'How the side menu opens and closes.',\n sidebarKeywords: 'sidebar navigation side bar',\n sidebarHelp: 'Automatic: opens when the pointer approaches. Fixed: always open. Compact: shows only the icons.',\n sidebarAuto: 'Automatic',\n sidebarFixed: 'Fixed',\n sidebarCompact: 'Compact',\n region: 'Region',\n regionKeywords: 'language locale time date hour week',\n language: 'Language',\n languageDescription: 'Applies immediately, no reload.',\n languageKeywords: 'language locale translation english spanish portuguese',\n languageAuto: 'System default ({language})',\n timeZone: 'Time zone',\n timeZoneKeywords: 'timezone hour utc gmt',\n timeZoneHint: 'For dates and times. Now: {now}',\n timeZoneAuto: 'Automatic ({zone})',\n hourCycle: 'Time format',\n hourCycleHint: 'Now: {now}',\n hourCycleKeywords: 'clock 24h 12h am pm hour',\n hourCycleAuto: 'Automatic',\n hourCycle24: '24-hour',\n hourCycle12: '12-hour',\n weekStart: 'First day of the week',\n weekStartDescription: 'For calendars and date pickers.',\n weekStartKeywords: 'week calendar sunday monday',\n weekStartAuto: 'Automatic',\n shortcuts: 'Shortcuts',\n shortcutsDescription: 'Press ? on any screen to see this list.',\n shortcutsKeywords: 'keyboard keys',\n setup: 'Initial setup',\n setupDescription: 'Opens the first-access appearance choice again.',\n setupKeywords: 'initial setup first access appearance welcome onboarding',\n redoSetup: 'Redo',\n essentials: 'The essentials',\n essentialsDescription: 'Search, tabs, favorites and settings in a summary.',\n essentialsKeywords: 'help tips search tabs favorites introduction',\n showEssentials: 'View',\n accessibility: 'Accessibility',\n accessibilityKeywords: 'accessibility reading vision',\n textSize: 'Text size',\n textSizeDescription: 'Makes text and controls larger on every screen.',\n textSizeKeywords: 'zoom font letter bigger enlarge',\n motion: 'Reduce motion',\n motionDescription: 'System follows your computer or phone.',\n motionKeywords: 'animation motion transition reduced dizziness',\n motionSystem: 'System',\n motionReduce: 'Always',\n motionFull: 'Never',\n help: 'Help',\n helpKeywords: \"help what's new initial setup essentials introduction\",\n news: \"What's new\",\n newsDescription: 'What changed in the latest versions.',\n newsKeywords: 'news version release changelog',\n showNews: \"See what's new\",\n browserData: 'Browser data',\n browserDataDescription: 'Stored only in this browser, for your account.',\n browserDataKeywords: 'privacy clear delete history data',\n recentPages: 'Recent pages',\n recentPagesKeywords: 'history visited recent',\n recentSearches: 'Recent searches',\n recentSearchesKeywords: 'search query history',\n favorites: 'Favorites',\n favoritesKeywords: 'favorites star bookmarks',\n pagesCount: { zero: 'No pages stored', one: '{count} page stored', other: '{count} pages stored' },\n searchesCount: { zero: 'No searches stored', one: '{count} search stored', other: '{count} searches stored' },\n clear: 'Clear',\n confirmClear: 'Confirm',\n cancel: 'Cancel',\n recentPagesCleared: 'Recent pages cleared.',\n recentSearchesCleared: 'Recent searches cleared.',\n favoritesCleared: 'Favorites cleared.',\n restorePreferences: 'Preferences',\n restorePreferencesDescription: 'Appearance, accessibility and formats go back to the defaults.',\n restorePreferencesHelp: 'Back to the defaults: theme, main color, density, font, side menu, text size, animations, time format and first day of the week. Language, time zone and single-key shortcuts stay as they are.',\n restorePreferencesKeywords: 'restore default reset preferences',\n restore: 'Restore defaults',\n confirmRestore: 'Confirm',\n preferencesRestored: 'Preferences restored.',\n account: 'Account',\n accountKeywords: 'profile user login level sign out',\n user: 'User',\n accessLevel: 'Access level',\n accessLevelKeywords: 'badge profile permission group',\n session: 'Session',\n sessionDescription: 'Renews itself while the application is open.',\n sessionKeywords: 'expiration token login',\n sessionUnknown: 'Not provided',\n sessionExpired: 'Expired at {time}',\n sessionExpiresIn: 'Expires in {minutes} min (at {time})',\n sessionExpiresAt: 'Expires at {time}',\n accessToken: 'Access token',\n accessTokenDescription: \"To test an API on your behalf. Don't share it.\",\n accessTokenKeywords: 'jwt bearer api developer',\n copy: 'Copy',\n moreAbout: 'More about {label}',\n appTokens: 'Application tokens',\n appTokensDescription: 'To use the application outside the interface: an MCP, a script.',\n appTokensKeywords: 'token app mcp api key pat x-app-token automation script integration',\n appTokensHelp: 'The token is valid only for this application, with the permissions of the chosen access level, and expires in at most 1 year. Send it in the x-app-token header.',\n groups: 'Groups',\n groupsDescription: 'The groups of this application you belong to. Pick one to see its members.',\n groupsKeywords: 'group groups members team people role administrator editor member add remove access',\n groupRole: 'Your role: {role} · Badge: {badge}',\n groupRoleDisabled: 'Your role: {role} · Group disabled',\n logout: 'Sign out',\n logoutDescription: 'Ends the session in this browser.',\n logoutKeywords: 'logout disconnect',\n mfa: 'MFA',\n mfaDescription: 'Two-step verification of your Argos account.',\n mfaKeywords: 'security argos password authentication mfa 2fa two-factor two-step verification',\n signedInAccount: 'Argos account',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Two-step verification',\n twoFactorDescription: 'A code on top of the password to sign in.',\n twoFactorKeywords: 'mfa 2fa totp authenticator code email method device phone',\n recoveryCodes: 'Recovery codes',\n recoveryCodesDescription: 'To sign in if you lose your device.',\n recoveryCodesKeywords: 'backup recovery lost phone device mfa 2fa',\n sessions: 'Sessions and devices',\n sessionsDescription: 'Where your account is signed in.',\n sessionsKeywords: 'devices browser ip end sign out disconnect connected',\n sessionsSection: 'Sessions',\n sessionsSectionDescription: 'This session, the application tokens and the signed-in devices.',\n sessionsSectionKeywords: 'session sessions token tokens devices login security',\n about: 'About',\n aboutKeywords: 'version build environment dependencies support',\n application: 'Application',\n version: 'Version',\n versionKeywords: 'release',\n buildDate: 'Build date',\n environment: 'Environment',\n environmentKeywords: 'staging production',\n links: 'Links',\n linksKeywords: 'repository documentation bug issue',\n docs: 'Documentation',\n reportIssue: 'Report a problem',\n repository: 'Repository',\n dependencies: 'Dependencies',\n dependenciesDescription: \"Versions declared in this application's package.json.\",\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Support information',\n supportInfoDescription: 'Version, environment, browser and preferences, to paste into the ticket.',\n supportInfoKeywords: 'help ticket diagnostics',\n noSessionToken: 'No session token available.',\n tokenCopied: \"Token copied. Don't share it: it gives access to your account until it expires.\",\n supportCopied: 'Information copied. Paste it into the support ticket.',\n copyBlocked: \"Couldn't copy. The browser blocked access to the clipboard.\",\n },\n support: {\n application: 'Application',\n version: 'Version',\n build: 'Build',\n environment: 'Environment',\n page: 'Page',\n browser: 'Browser',\n screen: 'Screen',\n theme: 'Theme',\n themeValue: '{theme} ({mode}) · family {family} · density {density} · font {font}',\n timeZone: 'Time zone',\n accessLevel: 'Access level',\n date: 'Date',\n },\n appTokens: {\n unavailable: \"Unavailable in this application: it isn't connected to argos-admin.\",\n created: 'Token \"{name}\" created — copy it now, it won\\'t be shown again.',\n sendHeader: 'Send it in the <code>x-app-token</code> header. Valid until {date}, with the permissions of the chosen access level.',\n copyToken: 'Copy token',\n saved: \"I've saved it\",\n loading: 'Loading…',\n expiredOn: 'Expired on {date}',\n expiresOn: 'Expires on {date}',\n lastUsed: 'Last used: {date}',\n never: 'never',\n revoke: 'Revoke',\n confirmRevoke: 'Confirm revocation',\n empty: \"You don't have any tokens in this application yet.\",\n noBadges: \"You don't have any access level in this application to create tokens.\",\n appOnly: 'Application: <strong>{name}</strong> — the token is valid only for it.',\n accessLevel: 'Access level',\n name: 'Name',\n namePlaceholder: 'E.g.: Claude MCP on my laptop',\n nameRequired: 'Give it a name so you can recognize the token later.',\n nameMax: 'Up to 80 characters.',\n validity: 'Validity',\n days30: '30 days',\n days90: '90 days',\n months6: '6 months',\n year1: '1 year',\n create: 'Create token',\n cancel: 'Cancel',\n newToken: 'New token',\n validCount: '{valid} of {max} valid',\n limit: 'Limit reached: revoke a token to create another one.',\n loadError: \"Couldn't load your tokens.\",\n badgesError: \"Couldn't load your access levels.\",\n createError: \"Couldn't create the token.\",\n copied: 'Token copied.',\n copyFailed: \"Couldn't copy. Select the text and copy it manually.\",\n revoked: 'Token \"{name}\" revoked. It may take up to 2 minutes to stop working in every system.',\n revokeError: \"Couldn't revoke the token.\",\n },\n myGroups: {\n loading: 'Loading…',\n loadError: \"Couldn't load the group members.\",\n roleAdministrator: 'Administrator',\n roleEditor: 'Editor',\n roleMember: 'Member',\n listLabel: 'Your groups',\n back: 'Back to groups',\n you: 'you',\n membersCount: { zero: 'No members', one: '{count} member', other: '{count} members' },\n empty: 'No members in this group.',\n readOnly: 'As a member, you can only see who is in the group.',\n addMember: 'Add member',\n addHeading: 'Add to {group}',\n search: 'Person',\n searchPlaceholder: 'Name, login or email',\n searchHint: 'Type at least 2 letters.',\n searching: 'Searching…',\n noResults: 'No one found.',\n searchError: \"Couldn't search for people.\",\n alreadyMember: 'already a member',\n role: 'Role',\n editorAddsMembers: 'As an Editor, you add people as Members.',\n add: 'Add',\n cancel: 'Cancel',\n added: '{name} joined the group.',\n addError: \"Couldn't add the member.\",\n roleOf: \"{name}'s role\",\n roleChanged: \"{name}'s role: {role}.\",\n roleError: \"Couldn't change the role.\",\n remove: 'Remove',\n confirmRemove: 'Confirm removal',\n removed: '{name} left the group.',\n removeError: \"Couldn't remove the member.\",\n },\n accountSecurity: {\n loading: 'Loading…',\n loadError: \"Couldn't load your Argos account.\",\n retry: 'Try again',\n methodTotp: 'Authenticator app',\n methodEmail: 'Email',\n methodSms: 'SMS',\n active: 'Active',\n activeWithDetail: 'Active · {detail}',\n notRegistered: 'Not set up',\n unavailable: 'Unavailable',\n requiredHint: 'Required in this environment: keep at least one method.',\n add: 'Add',\n replaceDevice: 'Switch device',\n remove: 'Remove',\n cancel: 'Cancel',\n confirm: 'Confirm',\n removeTitle: 'Remove {method}?',\n removeHint: \"You won't be able to use this method to sign in anymore.\",\n removeLastHint: 'With no method left, the recovery codes stop working too.',\n reauthTitle: 'Confirm your identity',\n reauthHint: 'For security, confirm before continuing. It lasts 5 minutes.',\n reauthHow: 'How to confirm',\n reauthPassword: 'Password',\n reauthRecoveryCode: 'Recovery code',\n currentPassword: 'Current password',\n passwordRequired: 'Enter your password.',\n recoveryCode: 'Recovery code',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Enter the code.',\n recoveryCodeLength: 'The code has 10 letters and digits.',\n sendEmailCode: 'Send a code to the registered email',\n sixDigitCode: '6-digit code',\n totpTitle: 'Scan the QR code with the authenticator app',\n qrAlt: 'QR code to set up the authenticator app',\n manualKey: 'No camera? Type the key:',\n appCode: 'Code from the app',\n emailTitle: 'Add email',\n email: 'Email',\n emailPlaceholder: 'name@company.com',\n emailRequired: 'Enter the email.',\n emailInvalid: 'Enter a valid email.',\n sendCode: 'Send code',\n emailCodeTitle: 'Confirm the email',\n emailCodeHint: 'Enter the 6-digit code sent to {email}.',\n codesRemaining: { zero: 'No codes available', one: '1 code available', other: '{count} codes available' },\n codesHint: 'Each one works once. Generating new ones invalidates the previous ones.',\n codesNeedMethod: 'Set up a verification method to generate recovery codes.',\n generateCodes: 'Generate codes',\n regenerateCodes: 'Generate new codes',\n codesTitle: 'Your recovery codes',\n codesShownOnce: \"Keep them somewhere safe: they won't be shown again. Each one works once.\",\n copyCodes: 'Copy',\n downloadCodes: 'Download .txt',\n codesCopied: 'Codes copied.',\n copyFailed: \"Couldn't copy. Select the codes and copy them manually.\",\n codesSaved: \"I've saved the codes\",\n codesFileHeader: 'Argos recovery codes (each one works once)',\n codesFileName: 'recovery-codes.txt',\n notices: {\n methodAdded: 'Method added.',\n deviceReplaced: 'Device switched. The previous one no longer generates valid codes.',\n methodRemoved: 'Method removed.',\n codesRegenerated: 'Recovery codes generated. The previous ones no longer work.',\n reauthCodeSent: 'We sent a code to the registered email.',\n },\n errors: {\n generic: \"Couldn't finish. Try again.\",\n network: \"Couldn't reach Argos. Check the connection and try again.\",\n login_required: 'This sign-in session has ended in Argos. Sign in again to manage your account.',\n invalid_token: 'This sign-in session has ended in Argos. Sign in again to manage your account.',\n reauthentication_required: 'The identity confirmation expired. Confirm again to continue.',\n invalid_password: 'Wrong password.',\n account_locked: 'Too many password attempts. The account is locked for a few minutes.',\n invalid_code: 'Wrong code.',\n invalid_recovery_code: 'Invalid or already used recovery code.',\n code_expired: 'The code expired. Request another one.',\n code_not_requested: 'Request the code before typing it.',\n too_many_attempts: 'Too many attempts. Wait a few minutes and try again.',\n too_many_requests: 'Wait a moment before requesting another code.',\n mfa_method_not_allowed: \"This method isn't accepted in this environment.\",\n mfa_method_not_found: 'This method was no longer set up.',\n mfa_last_method: 'Two-step verification is required: keep at least one method.',\n invalid_email: 'Enter a valid email.',\n enrollment_not_started: 'The setup expired. Start again.',\n sms_not_available: 'SMS unavailable.',\n mfa_required_for_recovery_codes: 'Set up a verification method before generating codes.',\n session_not_found: 'The session had already ended.',\n },\n sessionsEmpty: 'No active sessions.',\n thisSession: 'This session',\n thisBrowser: 'This browser',\n appsOnly: 'Apps only',\n sessionDetail: 'IP {ip} · last used {date}',\n unknownIp: 'unknown',\n sessionSince: 'Since {date}',\n sessionApps: 'Apps: {apps}',\n unnamedApp: 'App',\n endSession: 'End',\n confirmEndSession: 'Confirm ending',\n endOthers: 'End all other sessions',\n endOthersConfirm: {\n one: 'End the other session? Apps open in it will ask you to sign in again.',\n other: 'End the {count} other sessions? Apps open in them will ask you to sign in again.',\n },\n sessionEndedNotice: 'Session ended.',\n othersEndedNotice: { zero: 'No sessions ended.', one: '1 session ended.', other: '{count} sessions ended.' },\n },\n ratings: {\n rateScreen: 'Rate this page',\n rateApp: 'Rate {app}',\n ratedApp: 'Your rating of {app}',\n heading: 'Rate your experience',\n subheading: 'Take the chance to share your opinion',\n aboutScreen: 'Page: {screen}',\n aboutApp: '{app} as a whole',\n score: 'Your rating',\n scoreOf: '{value} of 10',\n scoreNamed: '{value} of 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Poor', 2: 'Fair', 3: 'Good', 4: 'Very good', 5: 'Excellent' },\n noScore: 'Not rated',\n scaleHint: 'From 0 to 10: each star is worth 2 and a half star, 1. Arrow keys move by half a star; clicking the first half star again gives 0.',\n comment: 'Comment',\n commentPlaceholder: 'What worked, what could be better (optional)',\n submit: 'Rate',\n update: 'Update',\n previous: 'You rated on {date}. You can change it anytime.',\n scoreRequired: 'Choose a rating from 0 to 10.',\n loading: 'Loading your rating…',\n thanks: 'Thanks for your rating!',\n updated: 'Rating updated. Thank you!',\n saveError: 'Could not send the rating. Try again.',\n period: 'Period',\n periods: { all: 'All time', d7: '7 days', d30: '30 days', d90: '90 days' },\n refresh: 'Refresh',\n appCard: 'The application',\n screensCard: 'The pages',\n appCardHint: 'Overall rating',\n screensCardHint: 'Overall rating of the pages',\n scoreMax: '/10',\n average: 'Average',\n total: { zero: 'No ratings', one: '1 rating', other: '{count} ratings' },\n comments: { zero: 'no comments', one: '1 comment', other: '{count} comments' },\n noRatings: 'No ratings in this period yet.',\n distribution: 'Rating distribution',\n distributionRow: 'Score {score}: {count} ({share})',\n ranking: 'Ratings by page and area',\n rankingHint: 'Compare the pages. Click one to see its ratings.',\n sort: 'Order',\n sorts: { worst: 'Worst first', best: 'Best first', most: 'Most rated' },\n noScreens: 'No pages rated in this period.',\n filterByScreen: 'See the ratings of {screen}',\n recent: 'Recent ratings',\n recentHint: 'Newest first.',\n filterScope: 'What was rated',\n allScopes: 'Tool and pages',\n tool: 'The application',\n screens: 'The pages',\n filterScreen: 'Page',\n allScreens: 'All pages',\n filterScore: 'Rating',\n allScores: 'All ratings',\n withComment: 'Show only with comment',\n clearFilters: 'Clear filters',\n noComment: 'No comment.',\n itemActions: 'Rating actions',\n copyComment: 'Copy comment',\n commentCopied: 'Comment copied.',\n copyFailed: 'Could not copy the comment.',\n showAppRatings: 'See ratings for the tool',\n showScreenRatings: 'See ratings for this page',\n emptyList: 'No ratings match these filters.',\n pagination: 'Rating pages',\n unknownUser: 'User',\n loadError: 'Could not load the ratings.',\n forbidden: 'You do not administer this application, or the Administrator badge is not active.',\n updatedAt: 'Updated on {date} at {time}',\n details: 'See details',\n detailsOf: '({name} ratings)',\n tabScreens: 'Pages',\n tabAreas: 'Areas',\n tabTrends: 'Trends',\n viewAll: 'See all ratings',\n allHeading: 'All ratings',\n justNow: 'Just now',\n yesterdayAt: 'Yesterday at {time}',\n dateAt: '{date} at {time}',\n sortsShort: { worst: 'Worst', best: 'Best', most: 'Most rated' },\n bands: { all: 'All scores', bad: 'Poor (below 5)', mid: 'Average (5 to 6.9)', good: 'Good (7 or more)' },\n bandFilter: 'Score range',\n filterArea: 'Area',\n allAreas: 'All areas',\n noArea: 'No area',\n filterByArea: 'See the pages of {area}',\n screensCount: { one: '1 page', other: '{count} pages' },\n searchScreens: 'Search page or path…',\n searchScreensLabel: 'Search page',\n searchAreas: 'Search area…',\n searchAreasLabel: 'Search area',\n tableEmpty: 'No page matches these filters.',\n areasEmpty: 'No area matches these filters.',\n colScreen: 'Page',\n colArea: 'Area',\n colScreens: 'Pages',\n colScore: 'Score',\n colTotal: 'Ratings',\n colComments: 'Comments',\n colTrend: 'Trend',\n colOpen: 'Open',\n tablePagination: 'Page list pages',\n areasPagination: 'Area list pages',\n trendOf: 'Weekly average: from {first} to {last}',\n trendNone: 'No weekly scores in the period.',\n trendCaption: 'Weekly average, from 0 to 10',\n trendEmpty: 'No ratings in the period to show a trend.',\n trendValue: '{series} {value}',\n trendWeek: 'Week of {week}: {values} ({count})',\n aboutRating: 'Rating',\n aboutRatingKeywords: 'rate rating stars average opinion',\n rateAction: 'Rate',\n noRatingsYet: 'No ratings yet.',\n loadingAverage: 'Loading the average…',\n averageError: 'Could not load the average.',\n },\n notification: {\n genericError: 'An error occurred while processing your request.',\n },\n graphql: {\n noResponse: \"The service didn't respond.\",\n serviceFailure: 'Service failure.',\n done: 'Operation completed.',\n failed: \"Couldn't complete the operation.\",\n },\n access: {\n blockedText:\n \"You're not in any group of this application. Ask its administrator to add you to a group, then sign in again.\",\n blockedAction: 'Sign out',\n noRightsText: \"You don't have access to any page of this application. Contact its administrator to request access.\",\n },\n session: {\n offline: \"Can't reach the authentication server. You're still signed in; trying to reconnect…\",\n reconnecting: 'Reconnecting…',\n reauthorizing: 'Renewing your session…',\n reauthorizationRequired: 'Your session needs to be confirmed. Nothing you have open will be lost.',\n signInAgain: 'Sign in again',\n callbackFailedHeading: \"Couldn't complete sign-in\",\n callbackFailedText: 'The sign-in response was incomplete or expired. Sign in again to continue.',\n logoutFailed: \"Couldn't sign out right now. Check your connection and try again.\",\n },\n routing: {\n notPublished: \"This address is in your access, but its screen hasn't been published yet.\",\n notPublishedCode: \"This address is in your access, but its screen hasn't been published yet. Give the code {code} to the Acropole team.\",\n },\n home: {\n noAccessTitle: \"You don't have access to any screen yet\",\n noAccessText:\n \"Access is granted by the application's administrator or by the administrator of a group with access to it. If they've already granted it, sign out and sign in again.\",\n yourScreens: 'Your screens',\n modules: 'Quick access',\n privileged: 'Privileged access',\n recent: 'Pick up where you left off',\n recentCaption: 'The screens you opened last, from most recent to oldest.',\n screenCount: { one: '1 screen', other: '{count} screens' },\n favorite: 'Add {name} to favorites',\n unfavorite: 'Remove {name} from favorites',\n favorites: 'Favorites',\n morning: 'Good morning',\n afternoon: 'Good afternoon',\n evening: 'Good evening',\n greetingName: '{greeting}, {name}',\n intro: 'Open your tools and keep up with updates to your systems.',\n seeAll: 'See all',\n seeLess: 'See less',\n recentActions: 'More actions for {name}',\n forgetRecent: 'Remove from history',\n explore: 'Explore systems',\n exploreIntro: 'Open the main modules of the platform.',\n news: \"What's new\",\n newsBadge: 'Updates',\n newsAll: 'See all',\n favoritesEmpty: 'Tap the heart on a screen bar to see it here.',\n help: 'Help and resources',\n shortcuts: 'Keyboard shortcuts',\n essentials: 'Review the essentials',\n settings: 'Settings',\n systemDocs: 'System documentation',\n },\n autoService: {\n loading: 'Loading...',\n cancel: 'Cancel',\n save: 'Save',\n create: 'Create',\n edit: 'Edit',\n remove: 'Remove',\n search: 'Look up',\n active: 'Active',\n inactive: 'Inactive',\n confirmChanges: 'Confirm changes',\n appsTitle: 'Applications',\n clientSections: 'Client sections',\n tabRoutes: 'Routes',\n tabRouters: 'Routers',\n tabAccess: 'Access',\n noClients:\n \"You don't manage this app. You need to (a) be in its project's administration group and (b) be signed in with the <strong>Administrator</strong> badge active. Switch badges in your profile menu, if available, or ask whoever manages the project for access.\",\n clientsLoadError: 'Could not load the clients you administer (HTTP {status}). This is not a permission issue: Argos did not respond. Try again in a moment.',\n retryLoad: 'Try again',\n pickClient: 'Select the client you want to manage',\n pickGroup: 'Select a group',\n noDescription: 'No description provided.',\n manageMembers: 'Manage members',\n membersCaption: 'Group members',\n noMembers: 'No members in this group.',\n colUser: 'User',\n colMemberSince: 'Member since',\n membersHeading: 'Members — {group}',\n addUser: 'Add user',\n userSearch: 'Search by name, username or email...',\n role: 'Role (optional)',\n noRole: 'Member (no role)',\n add: 'Add',\n suggestions: 'Suggestions',\n suggestionsHint: 'People already in other groups of this system',\n suggestionGroups: 'In {groups}',\n addSuggestion: 'Add {name} to the group',\n membersTitle: 'Group members',\n memberSearch: 'Search members...',\n membersOf: 'Members of group {group}',\n noMembersShort: 'No members.',\n newMember: 'New',\n addedBy: 'by {user}',\n removal: 'Removal',\n removalEmpty: 'Check members in the list to remove them from the group. Removal only applies when you save.',\n undoRemoval: 'Undo removal',\n saveChanges: 'Save changes',\n colRole: 'Role',\n colAddedAt: 'Added on',\n newAccess: 'New access',\n newAccessHeading: 'New access',\n accessCaption: 'Client access',\n noAccess: 'No access granted yet.',\n colGroup: 'Group',\n manageRoutes: 'Manage routes',\n group: 'Group',\n routesOf: 'Routes for {group}',\n noPrivateRoutes: \"No private route available for this group's badge.\",\n register: 'Register',\n secretCreated: \"Application created. Save the secret now, it won't be shown again:\",\n pickApp: 'Select an application',\n disable: 'Disable',\n enable: 'Enable',\n delete: 'Delete',\n appSections: 'Application sections',\n tabOperations: 'Operations',\n tabAccesses: 'Access',\n editApp: 'Edit application',\n newApp: 'New application',\n name: 'Name',\n grants: 'Grants (comma-separated)',\n appAccessCaption: 'Application access',\n noAppAccess: 'No group has access to this application yet.',\n colType: 'Type',\n manageOperations: 'Manage operations',\n colOperations: 'Operations',\n colGuards: 'Guards',\n colMembers: 'Members',\n filterOperations: 'Filter operations',\n filterRoutes: 'Filter routes',\n noFilterMatch: 'Nothing matches “{term}”.',\n routesTreeLabel: 'Private routes',\n operationsOf: 'Operations for {group}',\n noOperations: 'No operation registered for this application yet.',\n operationsCaption: 'Registered operations',\n colIdentifier: 'Identifier',\n colMethod: 'Method',\n colLevel: 'Level',\n colDescription: 'Description',\n colAllowedGroups: 'Allowed groups',\n groupCount: { one: '1 group', other: '{count} groups' },\n newRouter: 'New router',\n routersCaption: 'Client routers',\n noRouters: 'No router registered yet.',\n private: 'Private',\n public: 'Public',\n editRouter: 'Edit router',\n page: 'Page (required)',\n hierarchy: 'Hierarchy (optional)',\n levelHeader: 'Header',\n levelNavigation: 'Navigation',\n levelMenu: 'Menu',\n levelItem: 'Item',\n levelSubmenu: 'Submenu',\n privateHint: 'Private (requires access + guard to be visible)',\n routerDescription: 'Description',\n routerDescriptionHint: 'What the screen does, in one sentence. Shown below the title, in the page bar. On a router inherited from a template, the template text wins on the next sync.',\n colPage: 'Page',\n colBuiltPath: 'Built path',\n colVisibility: 'Visibility',\n colAllowedBadges: 'Allowed badges',\n anyBadge: 'Any badge',\n allowedBadgesHint: 'Empty = any badge. With one or more chosen, only groups with one of those badges can be given access to this screen in the Access tab.',\n newRoute: 'New route',\n routesCaption: 'Client routes',\n noRoutes: 'No route registered yet.',\n editRoute: 'Edit route',\n internalName: 'Internal name',\n displayName: 'Display name',\n icon: 'Icon',\n iconPlaceholder: 'e.g.: home',\n path: 'Path',\n info: 'Info',\n excludable: 'Deletable',\n excludableLocked: 'Protected route: only the central Argos administration can allow deleting it.',\n templateTag: 'Template',\n templateLocked: \"Comes from the application's template: only the central Argos administration can edit or delete it.\",\n pathPlaceholder: 'e.g.: dashboard',\n pathHint: 'A single piece of the address: lowercase letters and hyphens. The router adds the \"/\" between levels.',\n pathInvalid: 'Use only lowercase letters (a–z) and hyphens — no \"/\", spaces, digits or accents, and no hyphen at the start or end.',\n optionalId: 'ID (optional)',\n optionalIdPlaceholder: 'generated automatically',\n optionalIdHint: 'To keep staging and production with the same id, paste the id from the other environment; empty = generated.',\n optionalIdInvalid: 'Enter a UUID (e.g. 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) or leave it empty.',\n idTaken: 'This id is already in use. Choose another or leave the field empty.',\n rotateSecret: 'Generate new secret',\n confirmRotateSecretHeading: 'Generate a new secret?',\n confirmRotateSecret: 'The current secret stops working right away; update the APP_SECRET of the service that uses this application. Tokens already issued stay valid until they expire (up to 1 hour).',\n rotatedSecretHeading: 'New secret for {name}',\n rotatedSecretWarning: \"Copy it now: the secret won't be shown again.\",\n rotatedSecretNote: 'The server keeps only a hash of the secret. Once this window is closed there is no way to look it up; if it gets lost, generate another one.',\n rotatedSecretLabel: 'Secret of application {name}',\n copySecret: 'Copy',\n secretCopied: 'Secret copied.',\n rotatedSecretDone: 'Done',\n rotateSecretError: \"Couldn't generate the new secret. Try again.\",\n rotateSecretNotFound: 'Application not found in this client.',\n rotateSecretForbidden: \"You don't manage this client.\",\n confirmDeleteAppHeading: 'Delete application?',\n confirmDeleteApp: 'The application {name} will be deleted and its credential will stop working. This cannot be undone.',\n confirmDeleteRouteHeading: 'Delete route?',\n confirmDeleteRoute: 'The route {name} will be deleted from this client. This cannot be undone.',\n confirmDeleteRouterHeading: 'Delete router?',\n confirmDeleteRouter: 'The router {path} will be deleted and the page leaves the menu. This cannot be undone.',\n confirmRemoveAccessHeading: 'Remove access?',\n confirmRemoveAccess: 'The group {group} loses access to the private routes of this client.',\n confirmRemoveConsumerHeading: 'Remove access to the application?',\n confirmRemoveConsumer: 'The group {group} stops consuming this application and loses its operation permissions.',\n deleteDone: 'Deleted.',\n deleteError: 'Could not delete. Try again.',\n colExcludable: 'Deletable',\n excludableYes: 'Yes',\n excludableNo: 'No',\n colName: 'Name',\n colDisplay: 'Display',\n colIcon: 'Icon',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copy the ID of route {name}',\n copyRouterId: 'Copy the ID of router {name}',\n idCopied: 'ID copied',\n reorder: 'Reorder',\n reorderTitle: 'Reorder menu',\n reorderHint: 'Change the order in which items appear in the app menu: drag by the handle (or, on the keyboard, Space on the handle and the arrow keys) or use the up and down buttons. To order what sits inside an item, open it.',\n reorderPath: 'Menu level',\n reorderRoot: 'Top of the menu',\n reorderListLabel: 'Order in {name}',\n reorderEmpty: 'No router registered to order.',\n moveUp: 'Move {name} up',\n moveDown: 'Move {name} down',\n openLevel: 'Order what sits inside {name}',\n childCount: { one: '1 item inside', other: '{count} items inside' },\n movedTo: '{name}: position {position} of {total}',\n reorderLoadError: 'Could not load the menu. Try again.',\n reorderSaveError: 'Could not save the order. Nothing was lost: try again.',\n reorderSave: 'Save order',\n newGroup: 'New group',\n editGroup: 'Edit group',\n noGroups: 'No groups yet.',\n accessLevel: 'Access level',\n pickAccessLevel: 'Select a level',\n noLevel: 'No level',\n noGroupsOfLevel: 'No groups at this level.',\n colStatus: 'Status',\n groupName: 'Name',\n groupType: 'Type',\n groupTypePlaceholder: 'Select the type',\n groupDescription: 'Description (optional)',\n confirmDeleteGroupHeading: 'Delete group?',\n confirmDeleteGroup:\n 'The {name} group will be deleted along with its members, screen access and application permissions. This cannot be undone.',\n groupSaveError: 'Could not save the group. Try again.',\n membersSaveError: 'Could not save all member changes. Check the list and try again.',\n noApps: 'No applications registered yet.',\n tabTokens: 'Tokens',\n tokensCaption: 'Application tokens',\n noTokens: 'No tokens created for this application yet.',\n newToken: 'New token',\n colTokenPrefix: 'Token prefix',\n colExpiresAt: 'Expires',\n colLastUsed: 'Last used',\n tokenExpired: 'Expired',\n tokenRevoked: 'Revoked',\n neverUsed: 'Never',\n revokeToken: 'Revoke',\n confirmRevokeTokenHeading: 'Revoke token?',\n confirmRevokeToken: 'The token {name} stops working right away. Revoking cannot be undone.',\n tokenRevokedDone: 'Token {name} revoked.',\n tokenRevokeError: 'Could not revoke the token. Try again.',\n tokensLoadError: 'Could not load the application tokens.',\n tokenName: 'Name',\n tokenDescription: 'Description (optional)',\n tokenExpiresAt: 'Expires on',\n tokenExpiresHint: 'From tomorrow up to 365 days from today.',\n tokenExpiresInvalid: 'Pick a date between tomorrow and 365 days from today.',\n tokenOperations: 'Operations granted to the token',\n tokenOperationsNote: 'Nothing comes checked: a token has no login, so check the protected and private operations it may call. Public ones need no token.',\n freeForAll: 'open to everyone',\n freeForAuthenticated: 'open to authenticated callers',\n freeNoPermission: 'does not depend on permission',\n publicNoToken: 'public: no token needed',\n createToken: 'Create token',\n tokenSaveError: 'Could not create the token. Try again.',\n tokenCreatedHeading: 'Token {name} created',\n tokenCreatedWarning: 'Copy it now: the token will not be shown again.',\n tokenCreatedNote: 'Send it in the x-api-token header. The server keeps only a hash of the token; if it is lost, revoke it and create another.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copy',\n tokenCopied: 'Token copied.',\n hierarchyHint: 'Top-down: Navigation only with a Header, Menu only with a Navigation, Item only with a Menu and Submenu only with an Item. Clearing a level clears the ones below.',\n routerSaveError: 'Could not save the router. Try again.',\n permissionsSaveError: 'Could not save all operation changes. Reopen the panel and check.',\n permissionsSummaryGroup: '{marked} of {total} protected operations granted to the group.',\n permissionsSummaryToken: '{marked} of {total} operations granted to the token.',\n permissionsFreeGroup: {\n one: '1 operation does not depend on permission (public or private) and shows as checked.',\n other: '{count} operations do not depend on permission (public or private) and show as checked.',\n },\n permissionsFreeToken: {\n one: '1 public operation needs no token and cannot be granted.',\n other: '{count} public operations need no token and cannot be granted.',\n },\n permissionsFolderCount: '{marked} of {total}',\n permissionsTreeLabel: 'Operations',\n tokenErrors: {\n invalidExpiresAt: 'Invalid expiration date. Pick another date.',\n invalidValidity: 'The expiration must be between tomorrow and 365 days from today.',\n invalidOperationIds: 'Some selected operation no longer exists in this application. Reopen the form and choose again.',\n operationNotProtected: 'Only protected operations can be granted to a group; public and private ones already apply to it.',\n operationPublic: 'A public operation needs no token and cannot be granted to one. Uncheck it and try again.',\n appNotFound: 'Application not found in this client. It may have been deleted.',\n tokenNotFound: 'Token not found in this application. It may have been revoked already.',\n },\n routerErrors: {\n hierarchyGap: 'The hierarchy has an empty level in the middle: each level needs the one above it (Header → Navigation → Menu → Item → Submenu). Fill in the missing level or clear the ones below.',\n invalidAllowedTypes: 'A chosen badge no longer exists. Review the allowed badges.',\n },\n groupErrors: {\n invalidType: 'That group type no longer exists. Choose another type.',\n adminTypeReserved: \"The Administrator type belongs only to the project's administration group.\",\n emptyUpdate: 'Nothing to save: no field was changed.',\n groupProjectImmutable: \"A group can't move to another project.\",\n groupNameTaken: 'A group with this name already exists in this project.',\n adminGroupImmutable: \"The administration group can't be renamed, change type or be disabled.\",\n adminGroupProtected: \"The project's administration group can't be deleted.\",\n adminGroupLastMember: \"The administration group can't be left without members.\",\n adminGroupAccessProtected: \"The administration group's access to this app can't be removed.\",\n groupNotFound: 'Group not found in this project. It may have been deleted.',\n },\n },\n autoServiceAudit: {\n title: 'Audit',\n period: 'Period',\n periodLastHour: 'Last hour',\n period24h: 'Last 24 hours',\n period7d: 'Last 7 days',\n period30d: 'Last 30 days',\n periodFromFilters: 'The period comes from the dates chosen in the filters.',\n filters: 'Audit filters',\n filterDates: 'Dates',\n filterApp: 'Application',\n filterUser: 'User',\n filterOperation: 'Operation',\n filterMethod: 'Method',\n filterOutcome: 'Outcome',\n filterEntry: 'User actions only',\n userPlaceholder: 'User name',\n operationPlaceholder: 'Operation identifier or name',\n methodRead: 'Read',\n methodWrite: 'Write',\n methodDelete: 'Delete',\n methodStream: 'Stream',\n outcomeSuccess: 'Success',\n outcomeFailure: 'Failure',\n outcomeDenied: 'Denied',\n kpiTotal: 'Events',\n kpiTotalDescription: 'Everything recorded in the period.',\n kpiFailures: 'Failures',\n kpiDenied: 'Denied',\n kpiShare: '{percent} of total',\n kpis: 'Period summary',\n timeline: 'Timeline',\n timelineSummary: 'Events per interval, from {from} to {to}.',\n bucketSummary: '{time}: {total} events, {failures} failures, {denied} denied',\n timelineEmpty: 'No events to plot in the period.',\n topOperations: 'Most called operations',\n topUsers: 'Most active users',\n topApps: 'By application',\n noTop: 'Nothing in the period.',\n failureCount: { one: '1 failure', other: '{count} failures' },\n deniedCount: { one: '1 denied', other: '{count} denied' },\n filterBy: 'Filter by {name}',\n eventsCaption: 'Events in the period, newest first',\n colWhen: 'When',\n colApp: 'Application',\n colUser: 'User',\n colOperation: 'Operation',\n colMethod: 'Method',\n colOutcome: 'Outcome',\n colStatus: 'HTTP',\n colDuration: 'Duration',\n durationMs: '{ms} ms',\n pageItems: 'events',\n pageSize: 'per page',\n pageError: 'Could not load this page of events. Try again.',\n loading: 'Loading the audit…',\n emptyTitle: 'No events in the period',\n emptyText: 'Widen the period or remove filters to see more.',\n clearFilters: 'Clear filters',\n errorTitle: 'Could not load the audit',\n errorText: 'The server did not respond as expected. Try again in a moment.',\n retry: 'Try again',\n rangeTooLarge: 'The maximum period is 31 days. Pick closer dates.',\n forbidden: 'You do not have access to the audit of one of the chosen applications.',\n anonymous: 'No user',\n detailHeading: 'Event detail',\n detailLoading: 'Loading the full detail…',\n detailError: 'Could not load the full detail; showing the summary.',\n fieldWhen: 'When',\n fieldApp: 'Application',\n fieldUser: 'User',\n fieldActor: 'Actor type',\n fieldIp: 'Source IP',\n fieldOperation: 'Operation',\n fieldIdentifier: 'Identifier',\n fieldMethod: 'Method',\n fieldLevel: 'Level',\n fieldPermission: 'Permission',\n fieldOutcome: 'Outcome',\n fieldStatus: 'HTTP status',\n fieldDuration: 'Duration',\n fieldRoute: 'Route',\n fieldTarget: 'Target',\n fieldOrigin: 'Origin',\n originEntry: 'User action',\n originInternal: 'Call between applications',\n fieldTrace: 'Trace',\n fieldEventId: 'Event ID',\n fieldMessage: 'Message',\n fieldReceivedAt: 'Received at',\n fieldInstance: 'Service instance',\n fieldSdk: 'SDK',\n fieldDetails: 'Details',\n viewTrace: 'View chain (trace)',\n traceHeading: 'Action chain',\n traceLoading: 'Loading the chain…',\n traceError: 'Could not load the chain.',\n traceEmpty: 'No event of this chain belongs to your project’s applications.',\n traceHidden: {\n one: '1 event of this chain belongs to an application outside your project and is not shown here.',\n other: '{count} events of this chain belong to applications outside your project and are not shown here.',\n },\n period6h: 'Last 6 hours',\n refresh: 'Refresh',\n autoRefresh: 'Refresh every 30 s',\n updatedAt: 'Updated at {time}',\n updating: 'Updating…',\n filterUserId: 'User ID',\n filterLevel: 'Level',\n filterPermission: 'Permission',\n filterActor: 'Actor type',\n filterStatus: 'HTTP status',\n filterTrace: 'Trace',\n userIdPlaceholder: 'User UUID',\n statusPlaceholder: 'E.g. 403',\n tracePlaceholder: '32 hexadecimal characters',\n levelPublic: 'Public',\n levelPrivate: 'Private',\n levelProtected: 'Protected',\n levelOptional: 'Optional',\n permissionAllowed: 'Allowed',\n permissionForbidden: 'Forbidden',\n permissionUnauthorized: 'Not authenticated',\n permissionPublic: 'Public',\n actorUser: 'User',\n actorAppToken: 'Application token',\n actorApiToken: 'API token',\n actorPublic: 'Public',\n actorUnauthenticated: 'Not authenticated',\n forbiddenAdmin: 'Your account cannot read the audit log. Ask an administrator for the admin:audit:* operations.',\n invalidFilter: 'A filter has an invalid value. {detail}',\n kpiFilterHint: '{share} · click to filter',\n topsRange: '{from}–{to} of {total}',\n topsPrevious: 'Previous page of {name}',\n topsNext: 'Next page of {name}',\n topsError: 'Could not load this list.',\n filterByTrace: 'Filter the table by this trace',\n unitLabel: 'View by',\n unitActions: 'Actions',\n unitEvents: 'Events',\n kpiTotalActions: 'Actions',\n kpiTotalActionsDescription: 'Each action counts once, with every step across applications; its result is the worst of them.',\n timelineSummaryActions: 'Actions per interval, from {from} to {to}.',\n bucketSummaryActions: '{time}: {total} actions, {failures} failed, {denied} denied',\n timelineEmptyActions: 'No actions to plot in the period.',\n actionsCaption: 'Actions in the period, newest first',\n pageItemsActions: 'actions',\n pageErrorActions: 'Could not load this page of actions. Try again.',\n emptyTitleActions: 'No actions in the period',\n colSpans: 'Spans',\n spansApps: 'Applications: {apps}',\n spansHidden: {\n one: 'plus 1 span from an application outside your project',\n other: 'plus {count} spans from applications outside your project',\n },\n actionDetailHeading: 'Action detail',\n orphanNote: 'The entry of this action is not in the period (or was not recorded): it is shown from its first call between applications.',\n orphanTag: 'no entry',\n spansHeading: 'Action spans',\n spansSummary: '{count} spans in {duration}',\n spanRow: '{app}, {operation}: {outcome}, starts at +{offset}, takes {duration}',\n },\n loginAttempts: {\n refresh: 'Refresh',\n user: 'User',\n userPlaceholder: 'User, e-mail or typed identifier',\n period: 'Period',\n result: 'Result',\n method: 'Method',\n all: 'All',\n clear: 'Clear',\n advancedFilters: 'Advanced filters',\n ip: 'IP or network',\n ipPlaceholder: '10.0.0.5 or 10.0.0.0/8',\n ipHint: 'Exact IP or a network in CIDR notation.',\n reason: 'Reason',\n caption: 'Login attempts',\n pageItems: 'attempts',\n pageSize: 'Attempts per page',\n colDate: 'Date/time',\n colResult: 'Result',\n colMethod: 'Method',\n colUser: 'User',\n colReason: 'Reason',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Browser',\n filterByIp: 'Filter by this IP',\n filterByUser: 'Filter by this user',\n noMatchingUser: 'no matching user',\n methods: { local: 'Password', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Success', failure: 'Failure', cancelled: 'Cancelled' },\n reasons: {\n bad_password: 'Wrong password',\n unknown_user: 'Unknown or inactive user',\n locked: 'Account locked after failed attempts',\n mfa_failed: 'Wrong verification code',\n mfa_expired: 'Expired verification code',\n mfa_not_allowed: 'Verification method not allowed',\n mfa_invalid_method: 'Unknown verification method',\n recovery_failed: 'Recovery code wrong or already used',\n recovery_refused: 'Recovery code refused',\n not_linked: 'External account not linked',\n wrong_realm: 'User from another realm',\n },\n forbiddenAdmin: 'Your account cannot read login attempts. Ask an administrator for the admin:attempts:list operation.',\n forbiddenClient: 'Only the project administration group, with the Administrator badge active, sees the login attempts of this application.',\n loadErrorDetail: 'Could not load the attempts: {detail}',\n loadError: 'Could not load the login attempts.',\n },\n accountFeatures: {\n aiAgent: 'Connect an AI agent',\n aiAgentDescription: 'Generates the token and the MCP configuration to paste into Claude Code.',\n aiAgentKeywords: 'ai agent claude mcp assistant llm automation',\n aiAgentHelp: 'The agent uses a personal application token (x-app-token) with the permissions of the chosen access level. Revoke it under \"Application tokens\" when you no longer need it.',\n aiAgentStart: 'Connect agent',\n aiAgentServers: 'MCP servers',\n aiAgentAccess: 'Agent access',\n aiAgentReadOnly: 'Read only',\n aiAgentReadWrite: 'Read and write',\n aiAgentWriteHint: 'The agent will be able to change data on your behalf. Prefer read only when it is enough.',\n aiAgentReadOnlyServer: '{name} (read only)',\n aiAgentTokenName: 'AI agent ({date})',\n aiAgentGenerate: 'Generate configuration',\n aiAgentSelectServer: 'Choose at least one server.',\n aiAgentResult: 'Configuration ready',\n aiAgentResultHint: 'Paste into .mcp.json at the project root (Claude Code). The token is shown only now: copy it before finishing. Valid until {date}.',\n aiAgentCopy: 'Copy configuration',\n aiAgentCopied: 'Configuration copied. Do not share it: it contains your token.',\n aiAgentDone: 'Finish',\n aiAgentCreateError: 'Could not generate the agent token.',\n aiAgentUnavailable: 'Unavailable in this application: it is not connected to argos-admin.',\n activity: 'Account activity',\n activityDescription: 'Sign-ins and failed attempts in the last 90 days.',\n activityKeywords: 'login sign-in access history attempt failure ip browser security',\n activityFilter: 'Show',\n activityAll: 'All',\n activityFailures: 'Failures only',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Application: {app}',\n activityEmpty: 'Nothing in the last 90 days.',\n activityMore: 'Load more',\n activityShowing: '{shown} of {total}',\n activityLoadError: 'Could not load the account activity.',\n unknownIp: 'unknown',\n unknownApp: 'unnamed',\n idle: 'Sign out when idle',\n idleDescription: 'Signs out by itself after a while without use, with a warning first.',\n idleKeywords: 'idle inactivity timeout sign out automatic logout security lock',\n idleNever: 'Never',\n idleOption: '{minutes} min',\n idleLimitHint: 'This application signs out after at most {minutes} min without use.',\n idleWarningHeading: 'Your session is about to end',\n idleWarningText: { one: 'No activity for a while. The session ends in {count} second.', other: 'No activity for a while. The session ends in {count} seconds.' },\n idleStay: 'Stay signed in',\n idleLogout: 'Sign out now',\n startPage: 'Start page',\n startPageDescription: 'Where the application opens after signing in.',\n startPageKeywords: 'home opening login favorite last page',\n startHome: 'Home',\n startLast: 'Last visited page',\n startFavorite: 'Favorite: {name}',\n startPageHint: 'Mark pages as favorites to open on one of them.',\n defaultBadge: 'Default badge',\n defaultBadgeDescription: 'Access level you sign in with in this application, in any browser.',\n defaultBadgeKeywords: 'badge access level profile default login',\n defaultBadgeAuto: 'Automatic (the lowest level)',\n defaultBadgeSaved: 'Default badge saved. It applies from the next sign-in.',\n defaultBadgeError: 'Could not save the default badge.',\n defaultBadgeLoadError: 'Could not load your badges.',\n notices: 'Notifications',\n noticesDescription: 'The notices this application shows.',\n noticesKeywords: 'notification notice alert browser push',\n browserNotices: 'Browser notifications',\n browserNoticesDescription: 'System notification when the tab is in the background.',\n browserNoticesDenied: 'The browser blocked notifications for this site. Allow them in the browser settings.',\n browserNoticesUnsupported: 'This browser does not show notifications.',\n noticeOpen: 'Open',\n sync: 'Preferences in your account',\n syncDescription: 'Appearance, region, favorites and the other preferences follow you in any browser.',\n syncKeywords: 'sync cloud account browser preferences backup',\n syncSynced: 'Synced at {time}',\n syncSaving: 'Saving…',\n syncLocal: 'Only in this browser: the account is not available.',\n syncError: 'Could not sync. Try again.',\n syncNow: 'Sync now',\n },\n suggestions: {\n button: 'Suggest an improvement',\n buttonHint: 'Suggest an improvement for this page',\n modalTitle: 'Suggest an improvement',\n intro: 'Tell us what would make your work easier. Whoever manages the application gets the request and answers here.',\n kind: 'Type',\n kinds: { melhoria: 'Improvement', nova_funcionalidade: 'New feature', problema: 'Problem', outro: 'Other' },\n statuses: {\n em_analise: 'Under review', planejada: 'Planned', em_desenvolvimento: 'In development',\n concluida: 'Done', recusada: 'Declined',\n },\n legacyStatuses: { nova: 'New' },\n title: 'Title',\n titlePlaceholder: 'E.g.: Filter the list by date',\n titleRequired: 'Enter a title.',\n description: 'Description',\n descriptionHint: 'What you tried to do, what you expected and why it would help.',\n screen: 'Page',\n screenHint: 'Where the suggestion comes from. Change it if it is about another page.',\n send: 'Send suggestion',\n cancel: 'Cancel',\n sent: 'Suggestion sent. Thank you!',\n sendError: 'Could not send the suggestion. Try again.',\n similarHeading: 'Already requested on this page',\n similarHint: 'If it is the same request, support it instead of repeating it.',\n vote: 'I want this too',\n voted: 'You support this',\n votes: { one: '{count} supporter', other: '{count} supporters' },\n voteError: 'Could not register your support.',\n yours: 'Yours',\n mine: 'My suggestions',\n mineEmpty: 'You have not sent suggestions in this application yet.',\n mineError: 'Could not load your suggestions.',\n loadMore: 'Load more',\n statusFilter: 'Status',\n allStatuses: 'All',\n adminReply: 'Reply from the administrators',\n sentAt: 'Sent on {date}',\n boardLabel: 'Suggestions board',\n search: 'Search suggestions',\n kindFilter: 'Type',\n allKinds: 'All types',\n refresh: 'Refresh',\n boardEmpty: 'No suggestions yet',\n boardEmptyHint: 'Requests made with the \"Suggest an improvement\" button on each page show up here.',\n boardFiltered: '{shown} of {total} suggestions',\n loadError: 'Could not load the suggestions.',\n moveError: 'Could not move the suggestion. The board was reloaded.',\n removedAuthor: 'Removed person',\n noScreen: 'No page',\n noDescription: 'No description.',\n requestedBy: 'Requested by',\n requestedAt: 'On',\n status: 'Status',\n statusSaved: 'Status updated.',\n statusError: 'Could not change the status.',\n history: 'History',\n historyEmpty: 'No activity yet.',\n eventStatus: '{actor} moved it from {from} to {to}',\n eventComment: '{actor} commented',\n someone: 'Someone',\n comment: 'Comment for the requester',\n commentHint: 'The requester sees it on the \"App suggestions\" page.',\n commentSend: 'Comment',\n commentSent: 'Comment sent.',\n commentError: 'Could not send the comment.',\n commentRequired: 'Write the comment.',\n viewLabel: 'View',\n viewBoard: 'Board',\n viewArchive: 'Archive',\n kpis: 'Suggestion indicators',\n kpiOpen: 'In progress',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Done in {days} days',\n kpiDoneToday: '+{count} today',\n kpiDoneNoneToday: 'None done today',\n kpiOverdueTrend: '+{count} since yesterday',\n kpiOverdueSteady: 'No new ones since yesterday',\n kpiSoon: 'Due soon',\n kpiMineHint: 'Open tasks with you among the assignees',\n kpiPriority: 'Open by priority',\n kpiPriorityNone: 'Nothing open',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Board filters',\n moreFilters: 'More filters',\n moreFiltersActive: 'More filters ({count})',\n allBoardStatuses: 'All statuses',\n newTaskIn: 'New task in {status}',\n newTaskOptions: 'Create in another column',\n columnOldest: 'Oldest {age} ago',\n columnOverdue: { one: '{count} overdue', other: '{count} overdue' },\n columnEmpty: 'No tasks in this column.',\n columnEmptyFiltered: 'No tasks match these filters.',\n columnEmptyHints: {\n em_analise: 'New requests land here for the team to review.',\n planejada: 'What was accepted and is waiting its turn.',\n em_desenvolvimento: 'What the team is working on right now.',\n concluida: 'Deliveries from the last {days} days stay here.',\n },\n duration: { days: '{d}d {h}h', hours: '{h}h {m}m', minutes: '{m}m' },\n createdOn: 'Created on {date}',\n dueWithin: 'On track · by {date}',\n dueLateDays: { one: 'Overdue by {count} day', other: 'Overdue by {count} days' },\n screenFilter: 'Page',\n allScreens: 'All pages',\n authorFilter: 'Requested by',\n allAuthors: 'Everyone',\n sort: 'Sort',\n sorts: { position: 'Board order', votes: 'Most supported', recent: 'Most recent' },\n sortHint: 'With this sorting, dragging only changes the column (the card goes to its end).',\n clearFilters: 'Clear filters',\n topVoted: 'Most supported',\n comments: { one: '{count} comment', other: '{count} comments' },\n statusSince: 'Since {date}',\n openScreen: 'Open the page',\n statusChange: 'Change the status',\n statusComment: 'Comment (optional)',\n statusCommentHint: 'Goes with the change; the person sees it in \"My suggestions\".',\n statusApply: 'Change status',\n archiveLabel: 'Suggestions archive',\n archiveSearch: 'Search the archive',\n archiveEmpty: 'Nothing in the archive',\n archiveEmptyHint: 'Declined suggestions and those done more than {days} days ago show up here.',\n archiveCount: { one: '{count} suggestion in the archive', other: '{count} suggestions in the archive' },\n closedOn: { concluida: 'Done on {date}', recusada: 'Declined on {date}' },\n pagination: 'Archive pages',\n reopen: 'Reopen',\n reopened: 'Suggestion reopened: it is back to Under review.',\n reopenError: 'Could not reopen the suggestion.',\n newTask: 'New task',\n addTaskPlaceholder: 'Task title (Enter creates)',\n taskCreated: 'Task created.',\n createError: 'Could not create the task.',\n saveError: 'Could not save. Try again.',\n kpiMine: 'Assigned to me',\n kpiOverdue: 'Overdue',\n assigneeFilter: 'Assignee',\n allAssignees: 'Any assignee',\n assigneeMine: 'Mine',\n assigneeNone: 'Unassigned',\n labelFilter: 'Label',\n allLabels: 'All labels',\n priorityFilter: 'Priority',\n allPriorities: 'All priorities',\n dueFilter: 'Due date',\n dueAny: 'Any due date',\n dueOverdueFilter: 'Overdue',\n dueSoonFilter: 'Due today or tomorrow',\n priority: 'Priority',\n priorities: { urgente: 'Urgent', alta: 'High', media: 'Medium', baixa: 'Low' },\n dueOn: 'Due {date}',\n dueToday: 'Due today',\n dueTomorrow: 'Due tomorrow',\n dueLate: 'Was due {date}',\n checklistSpoken: '{done} of {total} items done',\n moreAssignees: '+{count}',\n cardMenu: 'Actions for {key}',\n menuStatus: 'Change status',\n menuAssignMe: 'Assign to me',\n menuCopyLink: 'Copy link',\n menuCopyKey: 'Copy key',\n menuLabel: 'Labels',\n menuNoLabels: 'No labels in this app',\n menuPriority: 'Priority',\n menuArchive: 'Archive',\n menuRestore: 'Restore to the board',\n menuDelete: 'Delete',\n labelColorName: 'Color {n}',\n linkCopied: 'Link copied.',\n keyCopied: 'Key copied.',\n copyError: 'Could not copy.',\n deleteHeading: 'Delete {key}?',\n deleteMessage: 'The task, its checklist, comments and activity are removed for good. This cannot be undone.',\n deleteConfirm: 'Delete',\n deleted: 'Task deleted.',\n archivedToast: 'Task archived: it is in the Archive.',\n restoredToast: 'Task back on the board.',\n assignedToMe: 'Assigned to you.',\n archivedTag: 'Archived',\n taskLabel: 'Task',\n close: 'Close',\n editTitle: 'Edit title',\n editDescription: 'Edit description',\n save: 'Save',\n checklist: 'Checklist',\n checklistAdd: 'Add item',\n checklistPlaceholder: 'New item (Enter adds)',\n checklistOnCard: 'Show on card',\n checklistEmpty: 'No items yet.',\n checklistRemove: 'Remove \"{text}\"',\n checklistUp: 'Move \"{text}\" up',\n checklistDown: 'Move \"{text}\" down',\n tabComments: 'Comments',\n tabActivity: 'History',\n commentsEmpty: 'No comments yet.',\n activityEmpty: 'No activity yet.',\n commentInternal: 'Team only (internal: the requester does not see it)',\n internalTag: 'Internal',\n activity: {\n created: '{actor} created the task',\n title: '{actor} renamed it from \"{from}\" to \"{to}\"',\n description: '{actor} edited the description',\n kind: '{actor} changed the type from {from} to {to}',\n priority: '{actor} changed the priority from {from} to {to}',\n start_date: '{actor} set the start date to {to}',\n start_date_removed: '{actor} removed the start date',\n due_date: '{actor} set the due date to {to}',\n due_date_removed: '{actor} removed the due date',\n cover: '{actor} changed the cover',\n cover_removed: '{actor} removed the cover',\n checklist_on_card: '{actor} changed the checklist on the card',\n screen: '{actor} changed the page to {to}',\n assignee_added: '{actor} assigned it to {to}',\n assignee_removed: '{actor} removed {from} from the assignees',\n watcher_added: '{actor} added {to} as a watcher',\n watcher_removed: '{actor} removed {from} from the watchers',\n label_added: '{actor} added the label {to}',\n label_removed: '{actor} removed the label {from}',\n checklist_added: '{actor} added \"{to}\" to the checklist',\n checklist_done: '{actor} completed \"{to}\"',\n checklist_undone: '{actor} reopened \"{to}\"',\n checklist_renamed: '{actor} renamed \"{from}\" to \"{to}\" in the checklist',\n checklist_removed: '{actor} removed \"{from}\" from the checklist',\n archived: '{actor} archived the task',\n restored: '{actor} restored the task to the board',\n merged: '{actor} merged this into {to}',\n merged_here: '{actor} merged {to} here',\n unmerged: '{actor} unmerged this from {from}',\n unmerged_here: '{actor} unmerged {from} from here',\n other: '{actor} changed the task',\n },\n assignees: 'Assignees',\n assignMe: 'Assign to me',\n addAssignee: 'Add assignee',\n watchers: 'Watchers',\n addWatcher: 'Add watcher',\n removePerson: 'Remove {name}',\n peopleSearch: 'Search people',\n peopleEmpty: 'No one found.',\n nobody: 'No one',\n reporter: 'Reporter',\n originUser: 'Requested from the page',\n originTeam: 'Created by the team',\n startDate: 'Start',\n dueDate: 'Due',\n labels: 'Labels',\n addLabel: 'Labels',\n createLabel: 'Create the label \"{name}\"',\n labelColor: 'Label color',\n noLabels: 'No labels',\n screenOrigin: 'Source page',\n votesField: 'Supporters',\n createdAt: 'Created on',\n updatedAt: 'Updated on',\n lastChange: 'Last changed {when} by {actor}',\n lastChangeNoActor: 'Last changed {when}',\n key: 'Key',\n copyKey: 'Copy the key',\n newTaskHeading: 'New task',\n createTask: 'Create task',\n draftHint: 'Assignees, checklist and comments become available once the task is created.',\n assignMeOnCreate: 'Assign to me',\n appSuggestions: 'App suggestions',\n listView: 'Which suggestions to show',\n tabAll: 'All',\n tabMine: 'Mine',\n appSearch: 'Search by title, description or SUG-12',\n thisScreen: 'This page',\n appSorts: { votes: 'Most supported', recent: 'Recent' },\n appEmpty: 'No suggestions here yet',\n appEmptyHint: 'Be the first to suggest an improvement.',\n appEmptyFiltered: 'No suggestions match these filters.',\n appError: 'Could not load the app suggestions.',\n support: 'Support {count}',\n supported: 'Supported {count}',\n ownSupportHint: 'This is your suggestion: your interest already counts.',\n publicComments: 'Comments',\n publicCommentsEmpty: 'No comments from the administrators yet.',\n commentsError: 'Could not load the comments.',\n moreComments: 'More comments',\n appPagination: 'Suggestion pages',\n menuMerge: 'Merge into…',\n mergeHeading: 'Merge {key} into…',\n mergeIntro: 'Pick the main suggestion. Whoever asked for and supported this one moves to it; this one leaves the board and stays in the archive, with its comments.',\n mergeSearch: 'Search by key or title',\n mergeNone: 'No open suggestion to merge into.',\n mergeHasMerged: 'Other suggestions are merged into this one. Unmerge them before merging it into another.',\n mergePreview: '{votes} and {reporters} move to {key}.',\n mergeCalculating: 'Working out what moves…',\n mergePreviewError: 'Could not work out the merge.',\n reportersCount: { one: '{count} reporter', other: '{count} reporters' },\n mergeConfirmHeading: 'Merge {key} into {target}?',\n mergeConfirmMessage: 'You can undo it later with \"Unmerge\".',\n mergeConfirm: 'Merge',\n mergedToast: '{key} merged into {target}.',\n mergeError: 'Could not merge the suggestion.',\n mergedTag: 'Merged',\n mergedInto: 'Merged into {key}',\n mergedIntoHint: 'The supporters and reporters are on the main one; the comments stay here.',\n openMerged: 'Open {key}',\n unmerge: 'Unmerge',\n unmergeLabel: 'Unmerge {key}',\n unmergedToast: '{key} unmerged: back on the board.',\n reporters: 'Reporters',\n reporterAuthor: 'Author',\n reporterVia: 'via {key}',\n mergedHere: 'Merged here',\n mergedFrom: '{key} merged into {target}',\n mergedFromHint: 'Identical requests became one: follow it here.',\n buttonMenu: 'Suggestions',\n openPage: 'View app suggestions',\n screenPick: 'Screen',\n screenPickHint: 'The screen that should change. If it does not exist yet, choose \"New screen\".',\n screenPickPlaceholder: 'Search by screen name',\n newScreenOption: 'New screen (does not exist yet)',\n newScreenName: 'New screen name',\n newScreenHint: 'What you would call the screen and where in the menu it would go.',\n newScreenRequired: 'Name the new screen.',\n newScreenTag: 'New screen',\n waiting: { solicitante: 'Waiting on requester', responsaveis: 'Waiting on assignees' },\n waitingFilter: 'Waiting on',\n waitingAny: 'Any',\n waitingClear: 'Nobody (conversation up to date)',\n waitingSaved: 'Conversation status updated.',\n menuWaiting: 'Waiting on',\n groupFilter: 'Group',\n allGroups: 'All groups',\n requestingGroups: 'Requesting groups',\n noGroups: 'No group (created by the team)',\n unread: { zero: 'none new', one: '{count} new', other: '{count} new' },\n fromRequester: 'Requester',\n cardChecklist: { one: '{count} task ({done}/{count})', other: '{count} tasks ({done}/{count})' },\n requestedByName: 'Requested by {name}',\n tabSummary: 'Summary',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter sends; Shift+Enter adds a line break.',\n inbox: {\n label: 'Suggestions',\n comment: '{name}: {comment}',\n status: '{name} changed the status to {status}',\n },\n page: {\n title: 'App suggestions',\n allTitle: 'All suggestions',\n statusPart: '{count} {status}',\n description: 'Follow what you asked for, what your group asked for and the suggestions you are involved in, and talk to the assignees.',\n reasons: { autor: 'Mine', relator: 'Merged', envolvido: 'Involved', responsavel: 'Assignee', grupo: 'My group' },\n reasonHints: {\n autor: 'You asked for this suggestion.',\n relator: 'A request of yours was merged into this suggestion.',\n envolvido: 'The team added you as involved.',\n responsavel: 'You are an assignee of this suggestion.',\n grupo: 'Someone in your group asked for this suggestion.',\n },\n reasonFilter: 'Why I see it',\n allReasons: 'All',\n needsYou: 'Need your reply',\n sorts: { activity: 'Recent activity', recent: 'Newest', votes: 'Most supported' },\n empty: 'No suggestions here yet.',\n emptyHint: 'Ask for an improvement in \"Suggest an improvement\": it shows up here with the conversation.',\n emptyFiltered: 'No suggestions match these filters.',\n error: 'Could not load the suggestions.',\n count: { one: '{count} suggestion', other: '{count} suggestions' },\n pickOne: 'Pick a suggestion to see its details and conversation.',\n notFound: 'Suggestion not found, or you do not have access to it.',\n conversation: 'Conversation',\n conversationEmpty: 'Nobody has written yet.',\n conversationError: 'Could not load the conversation.',\n olderMessages: 'Older messages',\n reply: 'Your message',\n replyPlaceholder: 'Reply to the assignees, add more details…',\n replySend: 'Send',\n replyError: 'Could not send the message.',\n readOnly: 'You follow this suggestion through your group: you can support it, but the conversation belongs to the requesters, the people involved and the assignees.',\n team: 'Team',\n you: 'You',\n groups: 'Groups',\n details: 'Details',\n listLabel: 'Suggestions',\n filtersLabel: 'Filters',\n waitingYou: 'The assignees are waiting for your reply.',\n waitingTeam: 'Waiting on the assignees.',\n },\n },\n};\n","import { SpineMessages } from './spine-messages';\n\nexport const SPINE_MESSAGES_ES: SpineMessages = {\n meta: { locale: 'es' },\n inbox: {\n title: 'Notificaciones',\n button: { zero: 'Notificaciones', one: 'Notificaciones, {count} nueva', other: 'Notificaciones, {count} nuevas' },\n empty: 'Nada nuevo por aquí.',\n error: 'No se pudieron cargar las notificaciones.',\n retry: 'Intentar de nuevo',\n news: { one: '{count} novedad', other: '{count} novedades' },\n },\n header: {\n home: 'Inicio',\n apps: 'Aplicaciones',\n themeDark: 'Tema oscuro',\n themeLight: 'Tema claro',\n densityComfortable: 'Densidad cómoda',\n densityCompact: 'Densidad compacta',\n fullscreen: 'Pantalla completa',\n exitFullscreen: 'Salir de pantalla completa',\n user: 'Usuario',\n accessLevels: 'Niveles de acceso',\n settings: 'Configuración',\n appearance: 'Apariencia',\n shortcuts: 'Atajos de teclado',\n news: 'Novedades',\n newsUnseen: '{label} ({count})',\n logout: 'Salir',\n search: 'Búsqueda',\n searchPlaceholder: 'Buscar módulo o página…',\n searchFavorites: 'Favoritos',\n searchRecent: 'Abiertos hace poco',\n searchModules: 'Módulos',\n searchScreens: 'Pantallas',\n },\n navigation: {\n back: 'Volver',\n home: 'Inicio',\n favorite: 'Agregar esta página a favoritos',\n unfavorite: 'Quitar de favoritos',\n copyLink: 'Copiar enlace de la página',\n linkCopied: '¡Enlace copiado!',\n },\n sidebar: {\n modules: 'Módulos',\n moduleNavigation: 'Navegación de {module}',\n apps: 'Aplicaciones',\n },\n pageBar: {\n favorite: 'Agregar esta página a favoritos',\n unfavorite: 'Quitar de favoritos',\n copyLink: 'Copiar enlace de la página',\n linkCopied: 'Enlace copiado',\n docs: 'Documentación de esta pantalla',\n trail: 'Estás en',\n },\n pagePanel: {\n notFoundTitle: 'No encontramos esta página',\n notFoundText: 'La dirección ya no existe. Cierra la pestaña y abre la página desde el menú.',\n },\n docs: {\n heading: 'Documentación',\n index: 'Índice de la documentación',\n search: 'Buscar en la documentación',\n noMatch: 'Ninguna página coincide con ese término.',\n empty: 'Ninguna pantalla tiene documentación todavía.',\n view: 'Vista de la documentación',\n usage: 'Cómo usar',\n technical: 'Especificación técnica',\n loading: 'Cargando la documentación',\n loadError: 'No se pudo cargar esta documentación.',\n invite: 'Elige una página en el índice para leer su documentación.',\n },\n news: {\n heading: 'Novedades',\n close: 'Cerrar',\n unseen: 'Nueva',\n toastOne: 'Novedad: {title}',\n toastMany: '{count} novedades',\n see: 'Ver',\n loading: 'Cargando las novedades…',\n empty: 'Todavía no hay novedades.',\n loadError: 'No se pudieron cargar las novedades.',\n retry: 'Intentar de nuevo',\n pages: 'Lista de novedades',\n search: 'Buscar novedades',\n searchPlaceholder: 'Buscar novedades…',\n filters: 'Filtrar novedades',\n filterAll: 'Todas',\n filterUnread: 'No leídas',\n filterFavorites: 'Favoritas',\n favorite: 'Marcar \"{title}\" como favorita',\n unfavorite: 'Quitar \"{title}\" de las favoritas',\n noResults: 'No se encontraron novedades.',\n home: 'Inicio',\n changes: 'Qué cambió',\n before: 'Antes',\n after: 'Ahora',\n markUnread: 'Marcar como no leída',\n gotIt: 'Entendido',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementación',\n kindAlteracao: 'Cambio',\n publishedOn: 'Publicada el {date}',\n editedOn: 'Editada el {date}',\n body: 'Texto de la novedad',\n detailError: 'No se pudo abrir esta novedad. Puede que ya no esté disponible.',\n },\n autoServiceNews: {\n caption: 'Novedades de la app',\n empty: 'No hay novedades registradas. Quien entra en la app ve aquí lo que cambió.',\n newNews: 'Nueva novedad',\n editNews: 'Editar novedad',\n newNewsIntro: 'Complete la información de la novedad que verán los usuarios.',\n editNewsIntro: 'Actualice la información de la novedad que verán los usuarios.',\n sectionMain: 'Información principal',\n sectionMainHint: 'El título y el resumen aparecen en la lista de novedades y en la tarjeta de Inicio.',\n sectionBody: 'Contenido de la novedad',\n sectionBodyHint: 'Describa los detalles de la novedad. Use formato, listas y enlaces, y destaque lo importante.',\n sectionPublish: 'Publicación',\n sectionUntil: 'Vigencia (opcional)',\n sectionAudience: 'Público',\n preview: 'Vista previa en Inicio',\n previewTitle: 'Título de la novedad',\n previewSummary: 'El resumen aparece aquí.',\n previewNow: 'Publicada al guardar',\n tipTitle: 'Consejo:',\n tipText: 'un título corto y un resumen directo llaman más la atención en Inicio.',\n untilDate: 'Último día en que aparece',\n audienceGroups: 'Grupos',\n kind: 'Tipo de publicación',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementación',\n kindAlteracao: 'Cambio',\n sectionBodyHintImpl: 'Una introducción corta, si quiere, y la lista de lo nuevo.',\n sectionBodyHintAlt: 'Muestre cómo era antes y cómo quedó ahora. La introducción es opcional.',\n intro: 'Introducción (opcional)',\n items: 'Qué cambió',\n itemsHint: 'Un cambio por ítem, hasta 300 caracteres. De 1 a 30 ítems.',\n itemPlaceholder: 'Describa un cambio',\n itemsEmpty: 'Todavía no hay cambios en la lista.',\n before: 'Antes',\n after: 'Ahora',\n colTitle: 'Título',\n colPublishedAt: 'Publicación',\n colUntil: 'Vigencia',\n colAudience: 'Público',\n colAuthor: 'Autor',\n colStatus: 'Estado',\n statusScheduled: 'Programada',\n statusPublished: 'Publicada',\n statusExpired: 'Vencida',\n audienceAll: 'Todos',\n noUntil: 'Sin fin',\n title: 'Título',\n summary: 'Resumen',\n summaryHint: 'Escriba un resumen corto y directo. Hasta 300 caracteres.',\n body: 'Texto',\n bodyHint: 'Se abre cuando la persona hace clic en la novedad.',\n publishDate: 'Fecha de publicación',\n publishTime: 'Hora de publicación',\n publishHint: 'Una fecha futura deja la novedad programada. Sin fecha, se publica de inmediato.',\n until: 'Vigencia',\n untilHint: 'Si no la informa, la novedad no vence.',\n audience: 'Público',\n audienceHint: 'Grupos con acceso a la app. Sin grupo, todos los que entran la ven.',\n confirmDeleteHeading: 'Eliminar novedad',\n confirmDelete: '¿Eliminar la novedad \"{title}\"? Desaparece para todos, incluso para quien aún no la vio.',\n saveError: 'No se pudo guardar la novedad.',\n loadError: 'No se pudieron cargar las novedades.',\n errors: {\n invalidTitle: 'Ingrese un título de hasta 140 caracteres.',\n invalidSummary: 'El resumen tiene hasta 300 caracteres.',\n bodyTooLarge: 'El texto supera el límite de 64 KB.',\n invalidPublishedAt: 'Fecha u hora de publicación inválida.',\n invalidUntil: 'Fecha de vigencia inválida.',\n invalidGroupIds: 'Algún grupo del público ya no tiene acceso a la app. Revise el público.',\n untilBeforePublish: 'La vigencia no puede terminar antes de la publicación.',\n invalidKind: 'Tipo de publicación inválido.',\n invalidItems: 'La implementación necesita de 1 a 30 cambios, de hasta 300 caracteres cada uno.',\n invalidCompare: 'El cambio necesita el antes y el ahora.',\n compareTooLarge: 'El antes o el ahora supera el límite de 32 KB.',\n },\n },\n setup: {\n label: 'Configuración inicial',\n step: 'Paso {current} de {total}',\n skip: 'Omitir',\n back: 'Atrás',\n next: 'Continuar',\n finish: 'Empezar',\n close: 'Entendido',\n greeting: 'Hola, {name}. Hazlo a tu manera.',\n greetingAnonymous: 'Hazlo a tu manera.',\n appearanceIntro: 'Elige cómo se ven los sistemas para ti. La elección vale en todos ellos y se puede cambiar cuando quieras, en la configuración.',\n preview: 'Vista previa',\n previewPage: 'Inicio',\n essentialsTitle: 'Lo esencial',\n essentialsIntro: 'Cuatro cosas que ayudan en el día a día.',\n searchTitle: 'Busca cualquier pantalla',\n searchText: 'Pulsa {key} o usa la búsqueda del encabezado para encontrar pantallas, favoritos y lo que abriste hace poco.',\n tabsTitle: 'Pestañas y paneles',\n tabsText: 'Cada pantalla se abre en una pestaña. Arrastra la pestaña a un lado del área de trabajo para ver dos pantallas juntas.',\n favoritesTitle: 'Favoritos',\n favoritesText: 'Marca el corazón de una pantalla para que aparezca en el inicio y arriba en la búsqueda.',\n settingsTitle: 'Configuración',\n settingsText: 'Apariencia, región, accesibilidad y seguridad de la cuenta están en el menú de tu perfil, o en {key}.',\n },\n shortcuts: {\n heading: 'Atajos de teclado',\n hint: 'Consejo: pulsa {key} en cualquier momento para volver a abrir este panel.',\n essentials: 'Repasar lo esencial',\n dismiss: 'Entendido',\n openSearch: 'Abrir la búsqueda rápida',\n goHome: 'Ir al Inicio',\n goFavorite: 'Ir al favorito n.º 1 a 9',\n history: 'Atrás / adelante en el historial',\n openSettings: 'Abrir la configuración',\n toggleTheme: 'Alternar tema claro / oscuro',\n fullscreen: 'Pantalla completa',\n logout: 'Salir (cerrar sesión)',\n showHelp: 'Mostrar este panel de atajos',\n closeOverlay: 'Cerrar diálogo / panel abierto',\n },\n settings: {\n heading: 'Configuración',\n appearance: 'Apariencia',\n appearanceKeywords: 'visual colores tema diseño',\n theme: 'Tema',\n themeDescription: 'Claro, oscuro o el del sistema operativo.',\n themeKeywords: 'modo oscuro dark light nocturno',\n themeLight: 'Claro',\n themeDark: 'Oscuro',\n themeSystem: 'Sistema',\n accent: 'Color principal',\n accentDescription: 'Familia de colores del encabezado, los botones y los destacados.',\n accentKeywords: 'familia paleta color acento',\n density: 'Densidad',\n densityDescription: 'Compacta muestra más información en pantalla.',\n densityKeywords: 'espaciado tamaño compacto',\n comfortable: 'Cómoda',\n compact: 'Compacta',\n font: 'Fuente',\n fontDescription: 'Tipografía de toda la aplicación.',\n fontKeywords: 'tipografía letra texto roboto rubik figtree geist',\n sidebar: 'Menú lateral',\n sidebarDescription: 'Cómo se abre y se cierra el menú lateral.',\n sidebarKeywords: 'sidebar navegación barra lateral',\n sidebarHelp: 'Automático: se abre al acercar el puntero. Fijo: siempre abierto. Compacto: muestra solo los íconos.',\n sidebarAuto: 'Automático',\n sidebarFixed: 'Fijo',\n sidebarCompact: 'Compacto',\n region: 'Región',\n regionKeywords: 'idioma localización horario fecha hora semana',\n language: 'Idioma',\n languageDescription: 'Se aplica al instante, sin recargar.',\n languageKeywords: 'idioma lengua traducción inglés español portugués',\n languageAuto: 'Predeterminado del sistema ({language})',\n timeZone: 'Zona horaria',\n timeZoneKeywords: 'timezone hora utc gmt',\n timeZoneHint: 'Para fechas y horas. Ahora: {now}',\n timeZoneAuto: 'Automático ({zone})',\n hourCycle: 'Formato de hora',\n hourCycleHint: 'Ahora: {now}',\n hourCycleKeywords: 'reloj 24h 12h am pm horario',\n hourCycleAuto: 'Automático',\n hourCycle24: '24 horas',\n hourCycle12: '12 horas',\n weekStart: 'Primer día de la semana',\n weekStartDescription: 'Para calendarios y selectores de fecha.',\n weekStartKeywords: 'semana calendario domingo lunes',\n weekStartAuto: 'Automático',\n shortcuts: 'Atajos',\n shortcutsDescription: 'Pulsa ? en cualquier pantalla para ver esta lista.',\n shortcutsKeywords: 'teclado teclas',\n setup: 'Configuración inicial',\n setupDescription: 'Abre de nuevo la elección de apariencia del primer acceso.',\n setupKeywords: 'configuración inicial primer acceso apariencia bienvenida',\n redoSetup: 'Rehacer',\n essentials: 'Lo esencial',\n essentialsDescription: 'Búsqueda, pestañas, favoritos y configuración en un resumen.',\n essentialsKeywords: 'ayuda consejos búsqueda pestañas favoritos presentación',\n showEssentials: 'Ver',\n accessibility: 'Accesibilidad',\n accessibilityKeywords: 'accesibilidad lectura visión',\n textSize: 'Tamaño del texto',\n textSizeDescription: 'Agranda el texto y los controles de todas las pantallas.',\n textSizeKeywords: 'zoom fuente letra más grande ampliar',\n motion: 'Reducir animaciones',\n motionDescription: 'Sistema sigue la computadora o el celular.',\n motionKeywords: 'animación movimiento transición reducido mareo',\n motionSystem: 'Sistema',\n motionReduce: 'Siempre',\n motionFull: 'Nunca',\n help: 'Ayuda',\n helpKeywords: 'ayuda novedades configuración inicial esencial presentación',\n news: 'Novedades',\n newsDescription: 'Lo que cambió en las últimas versiones.',\n newsKeywords: 'novedades versión lanzamiento changelog',\n showNews: 'Ver novedades',\n browserData: 'Datos del navegador',\n browserDataDescription: 'Guardados solo en este navegador, para tu cuenta.',\n browserDataKeywords: 'privacidad limpiar borrar historial datos',\n recentPages: 'Páginas recientes',\n recentPagesKeywords: 'historial visitadas recientes',\n recentSearches: 'Búsquedas recientes',\n recentSearchesKeywords: 'búsqueda historial',\n favorites: 'Favoritos',\n favoritesKeywords: 'favoritos estrella',\n pagesCount: { zero: 'Ninguna página guardada', one: '{count} página guardada', other: '{count} páginas guardadas' },\n searchesCount: { zero: 'Ninguna búsqueda guardada', one: '{count} búsqueda guardada', other: '{count} búsquedas guardadas' },\n clear: 'Limpiar',\n confirmClear: 'Confirmar',\n cancel: 'Cancelar',\n recentPagesCleared: 'Páginas recientes borradas.',\n recentSearchesCleared: 'Búsquedas recientes borradas.',\n favoritesCleared: 'Favoritos borrados.',\n restorePreferences: 'Preferencias',\n restorePreferencesDescription: 'Apariencia, accesibilidad y formatos vuelven a los valores predeterminados.',\n restorePreferencesHelp: 'Vuelven a lo predeterminado: tema, color principal, densidad, fuente, menú lateral, tamaño del texto, animaciones, formato de hora y primer día de la semana. El idioma, la zona horaria y los atajos de una sola tecla se mantienen.',\n restorePreferencesKeywords: 'restaurar predeterminado restablecer reset preferencias',\n restore: 'Restaurar',\n confirmRestore: 'Confirmar',\n preferencesRestored: 'Preferencias restauradas.',\n account: 'Cuenta',\n accountKeywords: 'perfil usuario login nivel salir',\n user: 'Usuario',\n accessLevel: 'Nivel de acceso',\n accessLevelKeywords: 'credencial badge perfil permiso grupo',\n session: 'Sesión',\n sessionDescription: 'Se renueva sola mientras la aplicación esté abierta.',\n sessionKeywords: 'expiración token login',\n sessionUnknown: 'No informado',\n sessionExpired: 'Expiró a las {time}',\n sessionExpiresIn: 'Expira en {minutes} min (a las {time})',\n sessionExpiresAt: 'Expira a las {time}',\n accessToken: 'Token de acceso',\n accessTokenDescription: 'Para probar una API en tu nombre. No lo compartas.',\n accessTokenKeywords: 'jwt bearer api desarrollador',\n copy: 'Copiar',\n moreAbout: 'Más sobre {label}',\n appTokens: 'Tokens de aplicación',\n appTokensDescription: 'Para usar la aplicación fuera de la interfaz: un MCP, un script.',\n appTokensKeywords: 'token app mcp api clave pat x-app-token automatización script integración',\n appTokensHelp: 'El token vale solo para esta aplicación, con los permisos del nivel de acceso elegido, y vence en como máximo 1 año. Envíalo en el encabezado x-app-token.',\n groups: 'Grupos',\n groupsDescription: 'Los grupos de esta aplicación de los que participas. Elige uno para ver los miembros.',\n groupsKeywords: 'grupo grupos miembros equipo personas función administrador editor miembro incluir quitar acceso',\n groupRole: 'Tu función: {role} · Credencial: {badge}',\n groupRoleDisabled: 'Tu función: {role} · Grupo desactivado',\n logout: 'Salir',\n logoutDescription: 'Cierra la sesión en este navegador.',\n logoutKeywords: 'logout desconectar',\n mfa: 'MFA',\n mfaDescription: 'Verificación en dos pasos de tu cuenta en Argos.',\n mfaKeywords: 'seguridad argos contraseña autenticación mfa 2fa dos factores dos pasos verificación',\n signedInAccount: 'Cuenta de Argos',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Verificación en dos pasos',\n twoFactorDescription: 'Un código además de la contraseña para entrar.',\n twoFactorKeywords: 'mfa 2fa totp autenticador authenticator código correo método dispositivo celular',\n recoveryCodes: 'Códigos de recuperación',\n recoveryCodesDescription: 'Para entrar si pierdes el dispositivo.',\n recoveryCodesKeywords: 'respaldo recuperación perdí celular dispositivo mfa 2fa',\n sessions: 'Sesiones y dispositivos',\n sessionsDescription: 'Dónde está conectada tu cuenta.',\n sessionsKeywords: 'dispositivos navegador ip cerrar desconectar salir conectados',\n sessionsSection: 'Sesiones',\n sessionsSectionDescription: 'Esta sesión, los tokens de aplicación y los dispositivos conectados.',\n sessionsSectionKeywords: 'sesión sesiones token tokens dispositivos login seguridad',\n about: 'Acerca de',\n aboutKeywords: 'versión build entorno dependencias soporte',\n application: 'Aplicación',\n version: 'Versión',\n versionKeywords: 'release',\n buildDate: 'Fecha del build',\n environment: 'Entorno',\n environmentKeywords: 'homologación producción',\n links: 'Enlaces',\n linksKeywords: 'repositorio documentación bug issue',\n docs: 'Documentación',\n reportIssue: 'Informar un problema',\n repository: 'Repositorio',\n dependencies: 'Dependencias',\n dependenciesDescription: 'Versiones declaradas en el package.json de esta aplicación.',\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Información para soporte',\n supportInfoDescription: 'Versión, entorno, navegador y preferencias, para pegar en el ticket.',\n supportInfoKeywords: 'ayuda ticket diagnóstico',\n noSessionToken: 'No hay ningún token de sesión disponible.',\n tokenCopied: 'Token copiado. No lo compartas: da acceso a tu cuenta hasta que expire.',\n supportCopied: 'Información copiada. Pégala en el ticket de soporte.',\n copyBlocked: 'No se pudo copiar. El navegador bloqueó el acceso al portapapeles.',\n },\n support: {\n application: 'Aplicación',\n version: 'Versión',\n build: 'Build',\n environment: 'Entorno',\n page: 'Página',\n browser: 'Navegador',\n screen: 'Pantalla',\n theme: 'Tema',\n themeValue: '{theme} ({mode}) · familia {family} · densidad {density} · fuente {font}',\n timeZone: 'Zona horaria',\n accessLevel: 'Nivel de acceso',\n date: 'Fecha',\n },\n appTokens: {\n unavailable: 'No disponible en esta aplicación: no está conectada a argos-admin.',\n created: 'Token \"{name}\" creado — cópialo ahora, no se volverá a mostrar.',\n sendHeader: 'Envíalo en el encabezado <code>x-app-token</code>. Vale hasta el {date}, con los permisos del nivel de acceso elegido.',\n copyToken: 'Copiar token',\n saved: 'Ya lo guardé',\n loading: 'Cargando…',\n expiredOn: 'Expiró el {date}',\n expiresOn: 'Expira el {date}',\n lastUsed: 'Último uso: {date}',\n never: 'nunca',\n revoke: 'Revocar',\n confirmRevoke: 'Confirmar revocación',\n empty: 'Todavía no tienes tokens en esta aplicación.',\n noBadges: 'No tienes ningún nivel de acceso en esta aplicación para generar tokens.',\n appOnly: 'Aplicación: <strong>{name}</strong> — el token solo vale para ella.',\n accessLevel: 'Nivel de acceso',\n name: 'Nombre',\n namePlaceholder: 'Ej.: MCP de Claude en el portátil',\n nameRequired: 'Ponle un nombre para reconocer el token después.',\n nameMax: 'Hasta 80 caracteres.',\n validity: 'Validez',\n days30: '30 días',\n days90: '90 días',\n months6: '6 meses',\n year1: '1 año',\n create: 'Crear token',\n cancel: 'Cancelar',\n newToken: 'Nuevo token',\n validCount: '{valid} de {max} válidos',\n limit: 'Límite alcanzado: revoca un token para crear otro.',\n loadError: 'No se pudieron cargar tus tokens.',\n badgesError: 'No se pudieron cargar tus niveles de acceso.',\n createError: 'No se pudo crear el token.',\n copied: 'Token copiado.',\n copyFailed: 'No se pudo copiar. Selecciona el texto y cópialo manualmente.',\n revoked: 'Token \"{name}\" revocado. Puede tardar hasta 2 minutos en dejar de funcionar en todos los sistemas.',\n revokeError: 'No se pudo revocar el token.',\n },\n myGroups: {\n loading: 'Cargando…',\n loadError: 'No se pudieron cargar los miembros del grupo.',\n roleAdministrator: 'Administrador',\n roleEditor: 'Editor',\n roleMember: 'Miembro',\n listLabel: 'Tus grupos',\n back: 'Volver a los grupos',\n you: 'tú',\n membersCount: { zero: 'Ningún miembro', one: '{count} miembro', other: '{count} miembros' },\n empty: 'Ningún miembro en este grupo.',\n readOnly: 'Como miembro, solo ves quién está en el grupo.',\n addMember: 'Incluir miembro',\n addHeading: 'Incluir en {group}',\n search: 'Persona',\n searchPlaceholder: 'Nombre, login o correo',\n searchHint: 'Escribe al menos 2 letras.',\n searching: 'Buscando…',\n noResults: 'No se encontró a nadie.',\n searchError: 'No se pudo buscar personas.',\n alreadyMember: 'ya es miembro',\n role: 'Función',\n editorAddsMembers: 'Como Editor, incluyes personas como Miembro.',\n add: 'Incluir',\n cancel: 'Cancelar',\n added: '{name} entró al grupo.',\n addError: 'No se pudo incluir el miembro.',\n roleOf: 'Función de {name}',\n roleChanged: 'Función de {name}: {role}.',\n roleError: 'No se pudo cambiar la función.',\n remove: 'Quitar',\n confirmRemove: 'Confirmar',\n removed: '{name} salió del grupo.',\n removeError: 'No se pudo quitar el miembro.',\n },\n accountSecurity: {\n loading: 'Cargando…',\n loadError: 'No se pudo cargar tu cuenta de Argos.',\n retry: 'Intentar de nuevo',\n methodTotp: 'Aplicación de autenticación',\n methodEmail: 'Correo electrónico',\n methodSms: 'SMS',\n active: 'Activo',\n activeWithDetail: 'Activo · {detail}',\n notRegistered: 'No registrado',\n unavailable: 'No disponible',\n requiredHint: 'Obligatoria en este entorno: mantén al menos un método.',\n add: 'Agregar',\n replaceDevice: 'Cambiar dispositivo',\n remove: 'Quitar',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n removeTitle: '¿Quitar {method}?',\n removeHint: 'Ya no podrás usar este método para iniciar sesión.',\n removeLastHint: 'Sin ningún método, los códigos de recuperación también dejan de valer.',\n reauthTitle: 'Confirma tu identidad',\n reauthHint: 'Por seguridad, confirma antes de continuar. Vale por 5 minutos.',\n reauthHow: 'Cómo confirmar',\n reauthPassword: 'Contraseña',\n reauthRecoveryCode: 'Código de recuperación',\n currentPassword: 'Contraseña actual',\n passwordRequired: 'Ingresa la contraseña.',\n recoveryCode: 'Código de recuperación',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Ingresa el código.',\n recoveryCodeLength: 'El código tiene 10 letras y números.',\n sendEmailCode: 'Enviar un código al correo registrado',\n sixDigitCode: 'Código de 6 dígitos',\n totpTitle: 'Escanea el código QR con la aplicación de autenticación',\n qrAlt: 'Código QR para configurar la aplicación de autenticación',\n manualKey: '¿Sin cámara? Escribe la clave:',\n appCode: 'Código de la aplicación',\n emailTitle: 'Registrar correo electrónico',\n email: 'Correo electrónico',\n emailPlaceholder: 'nombre@empresa.com',\n emailRequired: 'Ingresa el correo electrónico.',\n emailInvalid: 'Ingresa un correo electrónico válido.',\n sendCode: 'Enviar código',\n emailCodeTitle: 'Confirma el correo electrónico',\n emailCodeHint: 'Escribe el código de 6 dígitos enviado a {email}.',\n codesRemaining: { zero: 'Ningún código disponible', one: '1 código disponible', other: '{count} códigos disponibles' },\n codesHint: 'Cada uno vale una vez. Generar nuevos invalida los anteriores.',\n codesNeedMethod: 'Registra un método de verificación para generar códigos de recuperación.',\n generateCodes: 'Generar códigos',\n regenerateCodes: 'Generar códigos nuevos',\n codesTitle: 'Tus códigos de recuperación',\n codesShownOnce: 'Guárdalos en un lugar seguro: no se volverán a mostrar. Cada uno vale una vez.',\n copyCodes: 'Copiar',\n downloadCodes: 'Descargar .txt',\n codesCopied: 'Códigos copiados.',\n copyFailed: 'No se pudo copiar. Selecciona los códigos y cópialos manualmente.',\n codesSaved: 'Ya guardé los códigos',\n codesFileHeader: 'Códigos de recuperación de Argos (cada uno vale una vez)',\n codesFileName: 'codigos-de-recuperacion.txt',\n notices: {\n methodAdded: 'Método registrado.',\n deviceReplaced: 'Dispositivo cambiado. El anterior ya no genera códigos válidos.',\n methodRemoved: 'Método quitado.',\n codesRegenerated: 'Códigos de recuperación generados. Los anteriores ya no valen.',\n reauthCodeSent: 'Enviamos un código al correo registrado.',\n },\n errors: {\n generic: 'No se pudo completar. Intenta de nuevo.',\n network: 'No se pudo conectar con Argos. Revisa la conexión e intenta de nuevo.',\n login_required: 'La sesión de este inicio de sesión terminó en Argos. Inicia sesión de nuevo para administrar la cuenta.',\n invalid_token: 'La sesión de este inicio de sesión terminó en Argos. Inicia sesión de nuevo para administrar la cuenta.',\n reauthentication_required: 'La confirmación de identidad venció. Confirma de nuevo para continuar.',\n invalid_password: 'Contraseña incorrecta.',\n account_locked: 'Demasiados intentos con la contraseña. La cuenta quedó bloqueada unos minutos.',\n invalid_code: 'Código incorrecto.',\n invalid_recovery_code: 'Código de recuperación inválido o ya usado.',\n code_expired: 'El código venció. Pide otro.',\n code_not_requested: 'Pide el código antes de escribirlo.',\n too_many_attempts: 'Demasiados intentos. Espera unos minutos e intenta de nuevo.',\n too_many_requests: 'Espera un poco antes de pedir otro código.',\n mfa_method_not_allowed: 'Este método no se acepta en este entorno.',\n mfa_method_not_found: 'Este método ya no estaba registrado.',\n mfa_last_method: 'La verificación en dos pasos es obligatoria: mantén al menos un método.',\n invalid_email: 'Ingresa un correo electrónico válido.',\n enrollment_not_started: 'El registro venció. Empieza de nuevo.',\n sms_not_available: 'SMS no disponible.',\n mfa_required_for_recovery_codes: 'Registra un método de verificación antes de generar códigos.',\n session_not_found: 'La sesión ya se había cerrado.',\n },\n sessionsEmpty: 'Ninguna sesión activa.',\n thisSession: 'Esta sesión',\n thisBrowser: 'Este navegador',\n appsOnly: 'Solo aplicaciones',\n sessionDetail: 'IP {ip} · último uso {date}',\n unknownIp: 'desconocida',\n sessionSince: 'Desde {date}',\n sessionApps: 'Aplicaciones: {apps}',\n unnamedApp: 'Aplicación',\n endSession: 'Cerrar',\n confirmEndSession: 'Confirmar cierre',\n endOthers: 'Cerrar todas las demás',\n endOthersConfirm: {\n one: '¿Cerrar la otra sesión? Las aplicaciones abiertas en ella pedirán iniciar sesión de nuevo.',\n other: '¿Cerrar las {count} otras sesiones? Las aplicaciones abiertas en ellas pedirán iniciar sesión de nuevo.',\n },\n sessionEndedNotice: 'Sesión cerrada.',\n othersEndedNotice: { zero: 'Ninguna sesión cerrada.', one: '1 sesión cerrada.', other: '{count} sesiones cerradas.' },\n },\n ratings: {\n rateScreen: 'Evaluar esta pantalla',\n rateApp: 'Evaluar {app}',\n ratedApp: 'Tu evaluación de {app}',\n heading: 'Haz tu evaluación',\n subheading: 'Aprovecha para dejar tu opinión',\n aboutScreen: 'Pantalla: {screen}',\n aboutApp: '{app} en general',\n score: 'Tu nota',\n scoreOf: '{value} de 10',\n scoreNamed: '{value} de 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Mala', 2: 'Regular', 3: 'Buena', 4: 'Muy buena', 5: 'Excelente' },\n noScore: 'Sin nota',\n scaleHint: 'De 0 a 10: cada estrella vale 2 y media estrella, 1. Las flechas cambian de media en media; hacer clic de nuevo en la primera media estrella da 0.',\n comment: 'Comentario',\n commentPlaceholder: 'Qué funcionó, qué podría mejorar (opcional)',\n submit: 'Evaluar',\n update: 'Actualizar',\n previous: 'Evaluaste el {date}. Puedes cambiarla cuando quieras.',\n scoreRequired: 'Elige una nota de 0 a 10.',\n loading: 'Cargando tu evaluación…',\n thanks: '¡Gracias por tu evaluación!',\n updated: 'Evaluación actualizada. ¡Gracias!',\n saveError: 'No se pudo enviar la evaluación. Inténtalo de nuevo.',\n period: 'Período',\n periods: { all: 'Todo', d7: '7 días', d30: '30 días', d90: '90 días' },\n refresh: 'Actualizar',\n appCard: 'La herramienta',\n screensCard: 'Las pantallas',\n appCardHint: 'Evaluación general',\n screensCardHint: 'Evaluación general de las pantallas',\n scoreMax: '/10',\n average: 'Promedio',\n total: { zero: 'Ninguna evaluación', one: '1 evaluación', other: '{count} evaluaciones' },\n comments: { zero: 'ningún comentario', one: '1 comentario', other: '{count} comentarios' },\n noRatings: 'Todavía no hay evaluaciones en el período.',\n distribution: 'Distribución de las notas',\n distributionRow: 'Nota {score}: {count} ({share})',\n ranking: 'Evaluaciones por pantalla y área',\n rankingHint: 'Compara las pantallas. Haz clic en una para ver sus evaluaciones.',\n sort: 'Orden',\n sorts: { worst: 'Peores primero', best: 'Mejores primero', most: 'Más evaluadas' },\n noScreens: 'Ninguna pantalla evaluada en el período.',\n filterByScreen: 'Ver las evaluaciones de {screen}',\n recent: 'Evaluaciones recientes',\n recentHint: 'De la más nueva a la más antigua.',\n filterScope: 'Qué se evaluó',\n allScopes: 'Herramienta y pantallas',\n tool: 'La herramienta',\n screens: 'Las pantallas',\n filterScreen: 'Pantalla',\n allScreens: 'Todas las pantallas',\n filterScore: 'Nota',\n allScores: 'Todas las notas',\n withComment: 'Mostrar solo con comentario',\n clearFilters: 'Limpiar filtros',\n noComment: 'Sin comentario.',\n itemActions: 'Acciones de la evaluación',\n copyComment: 'Copiar comentario',\n commentCopied: 'Comentario copiado.',\n copyFailed: 'No se pudo copiar el comentario.',\n showAppRatings: 'Ver evaluaciones de la herramienta',\n showScreenRatings: 'Ver evaluaciones de esta pantalla',\n emptyList: 'Ninguna evaluación con estos filtros.',\n pagination: 'Páginas de las evaluaciones',\n unknownUser: 'Usuario',\n loadError: 'No se pudieron cargar las evaluaciones.',\n forbidden: 'No administras esta aplicación, o no tienes activa la credencial de Administrador.',\n updatedAt: 'Actualizado el {date} a las {time}',\n details: 'Ver detalles',\n detailsOf: '(evaluaciones de {name})',\n tabScreens: 'Pantallas',\n tabAreas: 'Áreas',\n tabTrends: 'Tendencias',\n viewAll: 'Ver todas las evaluaciones',\n allHeading: 'Todas las evaluaciones',\n justNow: 'Hace un momento',\n yesterdayAt: 'Ayer a las {time}',\n dateAt: '{date} a las {time}',\n sortsShort: { worst: 'Peores', best: 'Mejores', most: 'Más evaluadas' },\n bands: { all: 'Todas las notas', bad: 'Malas (menos de 5)', mid: 'Medias (5 a 6,9)', good: 'Buenas (7 o más)' },\n bandFilter: 'Rango de la nota',\n filterArea: 'Área',\n allAreas: 'Todas las áreas',\n noArea: 'Sin área',\n filterByArea: 'Ver las pantallas de {area}',\n screensCount: { one: '1 pantalla', other: '{count} pantallas' },\n searchScreens: 'Buscar pantalla o ruta…',\n searchScreensLabel: 'Buscar pantalla',\n searchAreas: 'Buscar área…',\n searchAreasLabel: 'Buscar área',\n tableEmpty: 'Ninguna pantalla con estos filtros.',\n areasEmpty: 'Ninguna área con estos filtros.',\n colScreen: 'Pantalla',\n colArea: 'Área',\n colScreens: 'Pantallas',\n colScore: 'Nota',\n colTotal: 'Evaluaciones',\n colComments: 'Comentarios',\n colTrend: 'Tendencia',\n colOpen: 'Abrir',\n tablePagination: 'Páginas de las pantallas',\n areasPagination: 'Páginas de las áreas',\n trendOf: 'Media por semana: de {first} a {last}',\n trendNone: 'Sin notas por semana en el período.',\n trendCaption: 'Media por semana, de 0 a 10',\n trendEmpty: 'Sin evaluaciones en el período para mostrar la tendencia.',\n trendValue: '{series} {value}',\n trendWeek: 'Semana del {week}: {values} ({count})',\n aboutRating: 'Evaluación',\n aboutRatingKeywords: 'evaluar nota estrellas promedio opinión',\n rateAction: 'Evaluar',\n noRatingsYet: 'Todavía sin evaluaciones.',\n loadingAverage: 'Cargando el promedio…',\n averageError: 'No se pudo cargar el promedio.',\n },\n notification: {\n genericError: 'Ocurrió un error al procesar tu solicitud.',\n },\n graphql: {\n noResponse: 'El servicio no respondió.',\n serviceFailure: 'Falla en el servicio.',\n done: 'Operación completada.',\n failed: 'No se pudo completar la operación.',\n },\n access: {\n blockedText:\n 'No formas parte de ningún grupo de esta aplicación. Pide a su administrador que te incluya en un grupo y vuelve a iniciar sesión.',\n blockedAction: 'Salir',\n noRightsText: 'No tienes acceso a ninguna página de esta aplicación. Habla con su administrador para solicitar acceso.',\n },\n session: {\n offline: 'Sin conexión con el servidor de autenticación. Sigues conectado; intentando reconectar…',\n reconnecting: 'Reconectando…',\n reauthorizing: 'Renovando tu sesión…',\n reauthorizationRequired: 'Tu sesión necesita ser confirmada. No se perderá nada de lo que tienes abierto.',\n signInAgain: 'Iniciar sesión de nuevo',\n callbackFailedHeading: 'No se pudo completar el inicio de sesión',\n callbackFailedText: 'La respuesta del inicio de sesión llegó incompleta o caducó. Vuelve a iniciar sesión para continuar.',\n logoutFailed: 'No se pudo cerrar la sesión ahora. Verifica la conexión e inténtalo de nuevo.',\n },\n routing: {\n notPublished: 'Esta dirección está en tu acceso, pero su pantalla todavía no fue publicada.',\n notPublishedCode: 'Esta dirección está en tu acceso, pero su pantalla todavía no fue publicada. Informa el código {code} al equipo de Acropole.',\n },\n home: {\n noAccessTitle: 'Todavía no tienes acceso a ninguna pantalla',\n noAccessText:\n 'El acceso lo concede el administrador de la aplicación o el administrador de un grupo con acceso a ella. Si ya lo concedió, sal y vuelve a entrar.',\n yourScreens: 'Tus pantallas',\n modules: 'Acceso rápido',\n privileged: 'Acceso privilegiado',\n recent: 'Continuar donde lo dejaste',\n recentCaption: 'Las pantallas que abriste por última vez, de la más reciente a la más antigua.',\n screenCount: { one: '1 pantalla', other: '{count} pantallas' },\n favorite: 'Agregar {name} a favoritos',\n unfavorite: 'Quitar {name} de favoritos',\n favorites: 'Favoritos',\n morning: 'Buenos días',\n afternoon: 'Buenas tardes',\n evening: 'Buenas noches',\n greetingName: '{greeting}, {name}',\n intro: 'Accede a tus herramientas y sigue las novedades de tus sistemas.',\n seeAll: 'Ver todo',\n seeLess: 'Ver menos',\n recentActions: 'Más acciones para {name}',\n forgetRecent: 'Quitar del historial',\n explore: 'Explorar sistemas',\n exploreIntro: 'Accede a los principales módulos de la plataforma.',\n news: 'Novedades',\n newsBadge: 'Actualizaciones',\n newsAll: 'Ver todas',\n favoritesEmpty: 'Toca el corazón en la barra de una pantalla para verla aquí.',\n help: 'Ayuda y recursos',\n shortcuts: 'Atajos de teclado',\n essentials: 'Repasar lo esencial',\n settings: 'Configuración',\n systemDocs: 'Documentación del sistema',\n },\n autoService: {\n loading: 'Cargando...',\n cancel: 'Cancelar',\n save: 'Guardar',\n create: 'Crear',\n edit: 'Editar',\n remove: 'Quitar',\n search: 'Consultar',\n active: 'Activo',\n inactive: 'Inactivo',\n confirmChanges: 'Confirmar cambios',\n appsTitle: 'Aplicaciones',\n clientSections: 'Secciones del cliente',\n tabRoutes: 'Rutas',\n tabRouters: 'Enrutadores',\n tabAccess: 'Acceso',\n noClients:\n 'No administras esta app. Necesitas (a) estar en el grupo de administración de su proyecto y (b) haber iniciado sesión con la credencial <strong>Administrador</strong> activa. Cambia de credencial en el menú de tu perfil, si está disponible, o pide acceso a quien administra el proyecto.',\n clientsLoadError: 'No fue posible cargar los clients que administra (HTTP {status}). No es falta de permiso: Argos no respondió. Inténtelo de nuevo en un momento.',\n retryLoad: 'Intentar de nuevo',\n pickClient: 'Selecciona el client que quieres administrar',\n pickGroup: 'Selecciona un grupo',\n noDescription: 'Sin descripción registrada.',\n manageMembers: 'Gestionar miembros',\n membersCaption: 'Miembros del grupo',\n noMembers: 'Ningún miembro en este grupo.',\n colUser: 'Usuario',\n colMemberSince: 'Miembro desde',\n membersHeading: 'Miembros — {group}',\n addUser: 'Agregar usuario',\n userSearch: 'Buscar por nombre, username o email...',\n role: 'Función (opcional)',\n noRole: 'Miembro (sin función)',\n add: 'Agregar',\n suggestions: 'Sugerencias',\n suggestionsHint: 'Personas que ya están en otros grupos de este sistema',\n suggestionGroups: 'En {groups}',\n addSuggestion: 'Agregar a {name} al grupo',\n membersTitle: 'Miembros del grupo',\n memberSearch: 'Buscar miembro...',\n membersOf: 'Miembros del grupo {group}',\n noMembersShort: 'Ningún miembro.',\n newMember: 'Nuevo',\n addedBy: 'por {user}',\n removal: 'Eliminación',\n removalEmpty: 'Marca miembros en la lista para quitarlos del grupo. La remoción solo vale al guardar.',\n undoRemoval: 'Deshacer eliminación',\n saveChanges: 'Guardar cambios',\n colRole: 'Función',\n colAddedAt: 'Agregado el',\n newAccess: 'Nuevo acceso',\n newAccessHeading: 'Nuevo acceso',\n accessCaption: 'Accesos del client',\n noAccess: 'Ningún acceso concedido todavía.',\n colGroup: 'Grupo',\n manageRoutes: 'Gestionar rutas',\n group: 'Grupo',\n routesOf: 'Rutas de {group}',\n noPrivateRoutes: 'Ninguna ruta privada disponible para la credencial de este grupo.',\n register: 'Registrar',\n secretCreated: 'Aplicación creada. Guarda el secret ahora, no se volverá a mostrar:',\n pickApp: 'Selecciona una aplicación',\n disable: 'Desactivar',\n enable: 'Activar',\n delete: 'Eliminar',\n appSections: 'Secciones de la aplicación',\n tabOperations: 'Operaciones',\n tabAccesses: 'Accesos',\n editApp: 'Editar aplicación',\n newApp: 'Nueva aplicación',\n name: 'Nombre',\n grants: 'Grants (separados por coma)',\n appAccessCaption: 'Accesos de la aplicación',\n noAppAccess: 'Ningún grupo tiene acceso a esta aplicación todavía.',\n colType: 'Tipo',\n manageOperations: 'Gestionar operaciones',\n colOperations: 'Operaciones',\n colGuards: 'Guards',\n colMembers: 'Miembros',\n filterOperations: 'Filtrar operaciones',\n filterRoutes: 'Filtrar rutas',\n noFilterMatch: 'Nada coincide con “{term}”.',\n routesTreeLabel: 'Rutas privadas',\n operationsOf: 'Operaciones de {group}',\n noOperations: 'Ninguna operación registrada para esta aplicación todavía.',\n operationsCaption: 'Operaciones registradas',\n colIdentifier: 'Identificador',\n colMethod: 'Método',\n colLevel: 'Nivel',\n colDescription: 'Descripción',\n colAllowedGroups: 'Grupos permitidos',\n groupCount: { one: '1 grupo', other: '{count} grupos' },\n newRouter: 'Nuevo enrutador',\n routersCaption: 'Enrutadores del client',\n noRouters: 'Ningún enrutador registrado todavía.',\n private: 'Privado',\n public: 'Público',\n editRouter: 'Editar enrutador',\n page: 'Página (obligatorio)',\n hierarchy: 'Jerarquía (opcional)',\n levelHeader: 'Header',\n levelNavigation: 'Navegación',\n levelMenu: 'Menú',\n levelItem: 'Ítem',\n levelSubmenu: 'Submenú',\n privateHint: 'Privado (exige access + guard para ser visible)',\n routerDescription: 'Descripción',\n routerDescriptionHint: 'Qué hace la pantalla, en una frase. Aparece debajo del título, en la barra de la página. En un enrutador heredado de una plantilla, el texto de la plantilla prevalece en la próxima sincronización.',\n colPage: 'Página',\n colBuiltPath: 'Ruta armada',\n colVisibility: 'Visibilidad',\n colAllowedBadges: 'Credenciales permitidas',\n anyBadge: 'Cualquier credencial',\n allowedBadgesHint: 'Vacío = cualquier credencial. Con una o más elegidas, solo los grupos con una de esas credenciales pueden recibir acceso a esta pantalla en la pestaña Acceso.',\n newRoute: 'Nueva ruta',\n routesCaption: 'Rutas del client',\n noRoutes: 'Ninguna ruta registrada todavía.',\n editRoute: 'Editar ruta',\n internalName: 'Nombre interno',\n displayName: 'Nombre visible',\n icon: 'Ícono',\n iconPlaceholder: 'ej.: home',\n path: 'Ruta (path)',\n info: 'Info',\n excludable: 'Eliminable',\n excludableLocked: 'Ruta protegida: solo la administración central de Argos puede permitir eliminarla.',\n templateTag: 'Plantilla',\n templateLocked: 'Viene de la plantilla de la aplicación: solo la administración central de Argos la edita o elimina.',\n pathPlaceholder: 'ej.: dashboard',\n pathHint: 'Un solo tramo de la dirección: letras minúsculas y guion. El \"/\" entre niveles lo arma el enrutador.',\n pathInvalid: 'Usa solo letras minúsculas (a–z) y guion — sin \"/\", espacios, números ni acentos, y sin guion al inicio o al final.',\n optionalId: 'ID (opcional)',\n optionalIdPlaceholder: 'generado automáticamente',\n optionalIdHint: 'Para mantener homologación y producción con el mismo id, pega el id del otro entorno; vacío = generado.',\n optionalIdInvalid: 'Indica un UUID (p. ej. 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) o déjalo vacío.',\n idTaken: 'Ya existe un registro con este id. Usa otro o deja el campo vacío.',\n rotateSecret: 'Generar nuevo secreto',\n confirmRotateSecretHeading: '¿Generar un nuevo secreto?',\n confirmRotateSecret: 'El secreto actual deja de funcionar de inmediato; actualice el APP_SECRET del servicio que usa esta aplicación. Los tokens ya emitidos valen hasta que expiren (hasta 1 hora).',\n rotatedSecretHeading: 'Nuevo secreto de {name}',\n rotatedSecretWarning: 'Cópielo ahora: el secreto no se volverá a mostrar.',\n rotatedSecretNote: 'El servidor guarda solo un hash del secreto. Al cerrar esta ventana no hay forma de consultarlo; si se pierde, genere otro.',\n rotatedSecretLabel: 'Secreto de la aplicación {name}',\n copySecret: 'Copiar',\n secretCopied: 'Secreto copiado.',\n rotatedSecretDone: 'Listo',\n rotateSecretError: 'No se pudo generar el nuevo secreto. Inténtelo de nuevo.',\n rotateSecretNotFound: 'Aplicación no encontrada en este client.',\n rotateSecretForbidden: 'Usted no administra este client.',\n confirmDeleteAppHeading: '¿Eliminar aplicación?',\n confirmDeleteApp: 'La aplicación {name} se eliminará y su credencial dejará de funcionar. Esta acción no se puede deshacer.',\n confirmDeleteRouteHeading: '¿Eliminar ruta?',\n confirmDeleteRoute: 'La ruta {name} se eliminará de este cliente. Esta acción no se puede deshacer.',\n confirmDeleteRouterHeading: '¿Eliminar enrutador?',\n confirmDeleteRouter: 'El enrutador {path} se eliminará y la página sale del menú. Esta acción no se puede deshacer.',\n confirmRemoveAccessHeading: '¿Quitar acceso?',\n confirmRemoveAccess: 'El grupo {group} pierde el acceso a las rutas privadas de este cliente.',\n confirmRemoveConsumerHeading: '¿Quitar acceso a la aplicación?',\n confirmRemoveConsumer: 'El grupo {group} deja de consumir esta aplicación y pierde sus permisos de operación.',\n deleteDone: 'Eliminación completada.',\n deleteError: 'No se pudo eliminar. Inténtalo de nuevo.',\n colExcludable: 'Eliminable',\n excludableYes: 'Sí',\n excludableNo: 'No',\n colName: 'Nombre',\n colDisplay: 'Visible',\n colIcon: 'Ícono',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copiar el ID de la ruta {name}',\n copyRouterId: 'Copiar el ID del enrutador {name}',\n idCopied: 'ID copiado',\n reorder: 'Reordenar',\n reorderTitle: 'Reordenar menú',\n reorderHint: 'Cambie el orden en que los elementos aparecen en el menú de la app: arrastre por el asa (o, con el teclado, Espacio en el asa y las flechas) o use los botones de subir y bajar. Para ordenar lo que hay dentro de un elemento, entre en él.',\n reorderPath: 'Nivel del menú',\n reorderRoot: 'Inicio del menú',\n reorderListLabel: 'Orden en {name}',\n reorderEmpty: 'Ningún enrutador registrado para ordenar.',\n moveUp: 'Mover {name} hacia arriba',\n moveDown: 'Mover {name} hacia abajo',\n openLevel: 'Ordenar lo que hay dentro de {name}',\n childCount: { one: '1 elemento dentro', other: '{count} elementos dentro' },\n movedTo: '{name}: posición {position} de {total}',\n reorderLoadError: 'No se pudo cargar el menú. Inténtelo de nuevo.',\n reorderSaveError: 'No se pudo guardar el orden. No se perdió nada: inténtelo de nuevo.',\n reorderSave: 'Guardar orden',\n newGroup: 'Nuevo grupo',\n editGroup: 'Editar grupo',\n noGroups: 'Aún no hay grupos registrados.',\n accessLevel: 'Nivel de acceso',\n pickAccessLevel: 'Selecciona un nivel',\n noLevel: 'Sin nivel',\n noGroupsOfLevel: 'Ningún grupo en este nivel.',\n colStatus: 'Estado',\n groupName: 'Nombre',\n groupType: 'Tipo',\n groupTypePlaceholder: 'Selecciona el tipo',\n groupDescription: 'Descripción (opcional)',\n confirmDeleteGroupHeading: '¿Eliminar grupo?',\n confirmDeleteGroup:\n 'El grupo {name} se eliminará junto con sus miembros, los accesos a pantallas y los permisos en aplicaciones. Esta acción no se puede deshacer.',\n groupSaveError: 'No se pudo guardar el grupo. Inténtalo de nuevo.',\n membersSaveError: 'No se pudieron guardar todos los cambios de los miembros. Revisa la lista e inténtalo de nuevo.',\n noApps: 'Ninguna aplicación registrada todavía.',\n tabTokens: 'Tokens',\n tokensCaption: 'Tokens de la aplicación',\n noTokens: 'Ningún token creado para esta aplicación todavía.',\n newToken: 'Nuevo token',\n colTokenPrefix: 'Inicio del token',\n colExpiresAt: 'Vence',\n colLastUsed: 'Último uso',\n tokenExpired: 'Vencido',\n tokenRevoked: 'Revocado',\n neverUsed: 'Nunca',\n revokeToken: 'Revocar',\n confirmRevokeTokenHeading: '¿Revocar token?',\n confirmRevokeToken: 'El token {name} deja de funcionar de inmediato. La revocación no se puede deshacer.',\n tokenRevokedDone: 'Token {name} revocado.',\n tokenRevokeError: 'No se pudo revocar el token. Inténtalo de nuevo.',\n tokensLoadError: 'No se pudieron cargar los tokens de la aplicación.',\n tokenName: 'Nombre',\n tokenDescription: 'Descripción (opcional)',\n tokenExpiresAt: 'Vence el',\n tokenExpiresHint: 'Desde mañana hasta 365 días a partir de hoy.',\n tokenExpiresInvalid: 'Elige una fecha entre mañana y 365 días a partir de hoy.',\n tokenOperations: 'Operaciones concedidas al token',\n tokenOperationsNote: 'Nada viene marcado: el token no tiene login, así que marca las operaciones protected y private que puede llamar. Las public no necesitan token.',\n freeForAll: 'abierta a todos',\n freeForAuthenticated: 'abierta a autenticados',\n freeNoPermission: 'no depende de permiso',\n publicNoToken: 'pública: no necesita token',\n createToken: 'Crear token',\n tokenSaveError: 'No se pudo crear el token. Inténtalo de nuevo.',\n tokenCreatedHeading: 'Token {name} creado',\n tokenCreatedWarning: 'Cópialo ahora: el token no se mostrará de nuevo.',\n tokenCreatedNote: 'Envíalo en el encabezado x-api-token. El servidor guarda solo un hash del token; si se pierde, revócalo y crea otro.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copiar',\n tokenCopied: 'Token copiado.',\n hierarchyHint: 'De arriba hacia abajo: Navegación solo con Header, Menú solo con Navegación, Ítem solo con Menú y Submenú solo con Ítem. Borrar un nivel borra los de abajo.',\n routerSaveError: 'No se pudo guardar el enrutador. Inténtalo de nuevo.',\n permissionsSaveError: 'No se pudieron guardar todos los cambios de las operaciones. Vuelve a abrir el panel y revisa.',\n permissionsSummaryGroup: '{marked} de {total} operaciones protegidas liberadas para el grupo.',\n permissionsSummaryToken: '{marked} de {total} operaciones liberadas para el token.',\n permissionsFreeGroup: {\n one: '1 operación no depende de permiso (public o private) y aparece marcada.',\n other: '{count} operaciones no dependen de permiso (public o private) y aparecen marcadas.',\n },\n permissionsFreeToken: {\n one: '1 operación public no necesita token y no se puede liberar.',\n other: '{count} operaciones public no necesitan token y no se pueden liberar.',\n },\n permissionsFolderCount: '{marked} de {total}',\n permissionsTreeLabel: 'Operaciones',\n tokenErrors: {\n invalidExpiresAt: 'Fecha de vencimiento no válida. Elige otra fecha.',\n invalidValidity: 'El vencimiento debe estar entre mañana y 365 días a partir de hoy.',\n invalidOperationIds: 'Alguna operación elegida ya no existe en esta aplicación. Vuelve a abrir el formulario y elige de nuevo.',\n operationNotProtected: 'Solo las operaciones protected se pueden conceder a un grupo; las public y private ya valen para él.',\n operationPublic: 'Una operación pública no necesita token y no se le puede conceder. Desmárcala e inténtalo de nuevo.',\n appNotFound: 'Aplicación no encontrada en este client. Puede haber sido eliminada.',\n tokenNotFound: 'Token no encontrado en esta aplicación. Puede que ya haya sido revocado.',\n },\n routerErrors: {\n hierarchyGap: 'La jerarquía tiene un nivel vacío en el medio: cada nivel necesita el de arriba (Header → Navegación → Menú → Ítem → Submenú). Completa el nivel que falta o borra los de abajo.',\n invalidAllowedTypes: 'Alguna credencial elegida ya no existe. Revisa las credenciales permitidas.',\n },\n groupErrors: {\n invalidType: 'Ese tipo de grupo ya no existe. Elige otro tipo.',\n adminTypeReserved: 'El tipo Administrador es solo del grupo de administración del proyecto.',\n emptyUpdate: 'Nada que guardar: no se cambió ningún campo.',\n groupProjectImmutable: 'El grupo no cambia de proyecto.',\n groupNameTaken: 'Ya existe un grupo con ese nombre en este proyecto.',\n adminGroupImmutable: 'El grupo de administración no cambia de nombre ni de tipo, ni se desactiva.',\n adminGroupProtected: 'El grupo de administración del proyecto no se puede eliminar.',\n adminGroupLastMember: 'El grupo de administración no puede quedarse sin miembros.',\n adminGroupAccessProtected: 'El acceso del grupo de administración a esta app no se puede quitar.',\n groupNotFound: 'Grupo no encontrado en este proyecto. Puede que se haya eliminado.',\n },\n },\n autoServiceAudit: {\n title: 'Auditoría',\n period: 'Período',\n periodLastHour: 'Última hora',\n period24h: 'Últimas 24 horas',\n period7d: 'Últimos 7 días',\n period30d: 'Últimos 30 días',\n periodFromFilters: 'El período viene de las fechas elegidas en los filtros.',\n filters: 'Filtros de la auditoría',\n filterDates: 'Fechas',\n filterApp: 'Aplicación',\n filterUser: 'Usuario',\n filterOperation: 'Operación',\n filterMethod: 'Método',\n filterOutcome: 'Resultado',\n filterEntry: 'Solo acciones del usuario',\n userPlaceholder: 'Nombre del usuario',\n operationPlaceholder: 'Identificador o nombre de la operación',\n methodRead: 'Lectura',\n methodWrite: 'Escritura',\n methodDelete: 'Eliminación',\n methodStream: 'Flujo continuo',\n outcomeSuccess: 'Éxito',\n outcomeFailure: 'Fallo',\n outcomeDenied: 'Denegado',\n kpiTotal: 'Eventos',\n kpiTotalDescription: 'Todo lo registrado en el período.',\n kpiFailures: 'Fallos',\n kpiDenied: 'Denegados',\n kpiShare: '{percent} del total',\n kpis: 'Resumen del período',\n timeline: 'Línea de tiempo',\n timelineSummary: 'Eventos por intervalo, de {from} a {to}.',\n bucketSummary: '{time}: {total} eventos, {failures} fallos, {denied} denegados',\n timelineEmpty: 'Sin eventos para dibujar en el período.',\n topOperations: 'Operaciones más llamadas',\n topUsers: 'Usuarios más activos',\n topApps: 'Por aplicación',\n noTop: 'Nada en el período.',\n failureCount: { one: '1 fallo', other: '{count} fallos' },\n deniedCount: { one: '1 denegado', other: '{count} denegados' },\n filterBy: 'Filtrar por {name}',\n eventsCaption: 'Eventos del período, del más reciente al más antiguo',\n colWhen: 'Cuándo',\n colApp: 'Aplicación',\n colUser: 'Usuario',\n colOperation: 'Operación',\n colMethod: 'Método',\n colOutcome: 'Resultado',\n colStatus: 'HTTP',\n colDuration: 'Duración',\n durationMs: '{ms} ms',\n pageItems: 'eventos',\n pageSize: 'por página',\n pageError: 'No se pudo cargar esta página de eventos. Inténtalo de nuevo.',\n loading: 'Cargando la auditoría…',\n emptyTitle: 'Ningún evento en el período',\n emptyText: 'Amplía el período o quita filtros para ver más.',\n clearFilters: 'Limpiar filtros',\n errorTitle: 'No se pudo cargar la auditoría',\n errorText: 'El servidor no respondió como se esperaba. Inténtalo de nuevo en unos instantes.',\n retry: 'Intentar de nuevo',\n rangeTooLarge: 'El período máximo es de 31 días. Elige fechas más cercanas.',\n forbidden: 'No tienes acceso a la auditoría de una de las aplicaciones elegidas.',\n anonymous: 'Sin usuario',\n detailHeading: 'Detalle del evento',\n detailLoading: 'Cargando el detalle completo…',\n detailError: 'No se pudo cargar el detalle completo; se muestra el resumen.',\n fieldWhen: 'Cuándo',\n fieldApp: 'Aplicación',\n fieldUser: 'Usuario',\n fieldActor: 'Tipo de actor',\n fieldIp: 'IP de origen',\n fieldOperation: 'Operación',\n fieldIdentifier: 'Identificador',\n fieldMethod: 'Método',\n fieldLevel: 'Nivel',\n fieldPermission: 'Permiso',\n fieldOutcome: 'Resultado',\n fieldStatus: 'Estado HTTP',\n fieldDuration: 'Duración',\n fieldRoute: 'Ruta',\n fieldTarget: 'Objetivo',\n fieldOrigin: 'Origen',\n originEntry: 'Acción del usuario',\n originInternal: 'Llamada entre aplicaciones',\n fieldTrace: 'Trace',\n fieldEventId: 'ID del evento',\n fieldMessage: 'Mensaje',\n fieldReceivedAt: 'Recibido en',\n fieldInstance: 'Instancia del servicio',\n fieldSdk: 'SDK',\n fieldDetails: 'Detalles',\n viewTrace: 'Ver cadena (trace)',\n traceHeading: 'Cadena de la acción',\n traceLoading: 'Cargando la cadena…',\n traceError: 'No se pudo cargar la cadena.',\n traceEmpty: 'Ningún evento de esta cadena está en las aplicaciones de tu proyecto.',\n traceHidden: {\n one: '1 evento de esta cadena es de una aplicación fuera de tu proyecto y no aparece aquí.',\n other: '{count} eventos de esta cadena son de aplicaciones fuera de tu proyecto y no aparecen aquí.',\n },\n period6h: 'Últimas 6 horas',\n refresh: 'Actualizar',\n autoRefresh: 'Actualizar cada 30 s',\n updatedAt: 'Actualizado a las {time}',\n updating: 'Actualizando…',\n filterUserId: 'ID del usuario',\n filterLevel: 'Nivel',\n filterPermission: 'Permiso',\n filterActor: 'Tipo de actor',\n filterStatus: 'Estado HTTP',\n filterTrace: 'Trace',\n userIdPlaceholder: 'UUID del usuario',\n statusPlaceholder: 'Ej.: 403',\n tracePlaceholder: '32 caracteres hexadecimales',\n levelPublic: 'Pública',\n levelPrivate: 'Privada',\n levelProtected: 'Protegida',\n levelOptional: 'Opcional',\n permissionAllowed: 'Permitido',\n permissionForbidden: 'Prohibido',\n permissionUnauthorized: 'No autenticado',\n permissionPublic: 'Pública',\n actorUser: 'Usuario',\n actorAppToken: 'Token de aplicación',\n actorApiToken: 'Token de API',\n actorPublic: 'Público',\n actorUnauthenticated: 'No autenticado',\n forbiddenAdmin: 'Tu cuenta no tiene permiso de lectura de la auditoría. Pide a un administrador las operaciones admin:audit:*.',\n invalidFilter: 'Algún filtro tiene un valor no válido. {detail}',\n kpiFilterHint: '{share} · haz clic para filtrar',\n topsRange: '{from}–{to} de {total}',\n topsPrevious: 'Página anterior de {name}',\n topsNext: 'Página siguiente de {name}',\n topsError: 'No se pudo cargar esta lista.',\n filterByTrace: 'Filtrar la tabla por este trace',\n unitLabel: 'Ver por',\n unitActions: 'Acciones',\n unitEvents: 'Eventos',\n kpiTotalActions: 'Acciones',\n kpiTotalActionsDescription: 'Cada acción cuenta una vez, con todas las etapas entre aplicaciones; el resultado es el peor de ellas.',\n timelineSummaryActions: 'Acciones por intervalo, de {from} a {to}.',\n bucketSummaryActions: '{time}: {total} acciones, {failures} con fallo, {denied} denegadas',\n timelineEmptyActions: 'Sin acciones para dibujar en el período.',\n actionsCaption: 'Acciones del período, de la más reciente a la más antigua',\n pageItemsActions: 'acciones',\n pageErrorActions: 'No se pudo cargar esta página de acciones. Inténtalo de nuevo.',\n emptyTitleActions: 'Ninguna acción en el período',\n colSpans: 'Spans',\n spansApps: 'Aplicaciones: {apps}',\n spansHidden: {\n one: 'más 1 span de una aplicación fuera de tu proyecto',\n other: 'más {count} spans de aplicaciones fuera de tu proyecto',\n },\n actionDetailHeading: 'Detalle de la acción',\n orphanNote: 'La entrada de esta acción no está en el período (o no se registró): se muestra desde su primera llamada entre aplicaciones.',\n orphanTag: 'sin entrada',\n spansHeading: 'Spans de la acción',\n spansSummary: '{count} spans en {duration}',\n spanRow: '{app}, {operation}: {outcome}, empieza en +{offset}, dura {duration}',\n },\n loginAttempts: {\n refresh: 'Actualizar',\n user: 'Usuario',\n userPlaceholder: 'Usuario, correo o identificador escrito',\n period: 'Período',\n result: 'Resultado',\n method: 'Método',\n all: 'Todos',\n clear: 'Limpiar',\n advancedFilters: 'Filtros avanzados',\n ip: 'IP o red',\n ipPlaceholder: '10.0.0.5 o 10.0.0.0/8',\n ipHint: 'IP exacta o red en notación CIDR.',\n reason: 'Motivo',\n caption: 'Intentos de inicio de sesión',\n pageItems: 'intentos',\n pageSize: 'Intentos por página',\n colDate: 'Fecha/hora',\n colResult: 'Resultado',\n colMethod: 'Método',\n colUser: 'Usuario',\n colReason: 'Motivo',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Navegador',\n filterByIp: 'Filtrar por esta IP',\n filterByUser: 'Filtrar por este usuario',\n noMatchingUser: 'sin usuario correspondiente',\n methods: { local: 'Contraseña', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Éxito', failure: 'Fallo', cancelled: 'Cancelado' },\n reasons: {\n bad_password: 'Contraseña incorrecta',\n unknown_user: 'Usuario inexistente o inactivo',\n locked: 'Cuenta bloqueada por intentos',\n mfa_failed: 'Código de verificación incorrecto',\n mfa_expired: 'Código de verificación vencido',\n mfa_not_allowed: 'Método de verificación no permitido',\n mfa_invalid_method: 'Método de verificación desconocido',\n recovery_failed: 'Código de recuperación incorrecto o ya usado',\n recovery_refused: 'Código de recuperación rechazado',\n not_linked: 'Cuenta externa no vinculada',\n wrong_realm: 'Usuario de otro realm',\n },\n forbiddenAdmin: 'Tu cuenta no puede consultar los intentos de inicio de sesión. Pide a un administrador la operación admin:attempts:list.',\n forbiddenClient: 'Solo el grupo de administración del proyecto, con la insignia Administrador activa, ve los intentos de inicio de sesión de esta aplicación.',\n loadErrorDetail: 'No se pudieron cargar los intentos: {detail}',\n loadError: 'No se pudieron cargar los intentos de inicio de sesión.',\n },\n accountFeatures: {\n aiAgent: 'Conectar un agente de IA',\n aiAgentDescription: 'Genera el token y la configuración MCP para pegar en Claude Code.',\n aiAgentKeywords: 'ia agente claude mcp asistente llm automatización',\n aiAgentHelp: 'El agente usa un token de aplicación personal (x-app-token) con los permisos del nivel de acceso elegido. Revóquelo en \"Tokens de aplicación\" cuando ya no lo necesite.',\n aiAgentStart: 'Conectar agente',\n aiAgentServers: 'Servidores MCP',\n aiAgentAccess: 'Acceso del agente',\n aiAgentReadOnly: 'Solo lectura',\n aiAgentReadWrite: 'Lectura y escritura',\n aiAgentWriteHint: 'El agente podrá cambiar datos en su nombre. Prefiera solo lectura cuando sea suficiente.',\n aiAgentReadOnlyServer: '{name} (solo lectura)',\n aiAgentTokenName: 'Agente de IA ({date})',\n aiAgentGenerate: 'Generar configuración',\n aiAgentSelectServer: 'Elija al menos un servidor.',\n aiAgentResult: 'Configuración lista',\n aiAgentResultHint: 'Péguelo en .mcp.json, en la raíz del proyecto (Claude Code). El token aparece solo ahora: cópielo antes de terminar. Válido hasta {date}.',\n aiAgentCopy: 'Copiar configuración',\n aiAgentCopied: 'Configuración copiada. No la comparta: contiene su token.',\n aiAgentDone: 'Terminar',\n aiAgentCreateError: 'No fue posible generar el token del agente.',\n aiAgentUnavailable: 'No disponible en esta aplicación: no está conectada a argos-admin.',\n activity: 'Actividad de la cuenta',\n activityDescription: 'Inicios de sesión e intentos fallidos en los últimos 90 días.',\n activityKeywords: 'login acceso historial intento falla ip navegador seguridad',\n activityFilter: 'Mostrar',\n activityAll: 'Todas',\n activityFailures: 'Solo fallas',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Aplicación: {app}',\n activityEmpty: 'Nada en los últimos 90 días.',\n activityMore: 'Cargar más',\n activityShowing: '{shown} de {total}',\n activityLoadError: 'No fue posible cargar la actividad de la cuenta.',\n unknownIp: 'desconocido',\n unknownApp: 'sin nombre',\n idle: 'Cerrar por inactividad',\n idleDescription: 'Sale solo después de un tiempo sin uso, con un aviso antes.',\n idleKeywords: 'inactividad tiempo salir automático logout seguridad bloqueo',\n idleNever: 'Nunca',\n idleOption: '{minutes} min',\n idleLimitHint: 'Esta aplicación cierra la sesión en un máximo de {minutes} min sin uso.',\n idleWarningHeading: 'La sesión se va a cerrar',\n idleWarningText: { one: 'Sin actividad desde hace un tiempo. La sesión termina en {count} segundo.', other: 'Sin actividad desde hace un tiempo. La sesión termina en {count} segundos.' },\n idleStay: 'Seguir conectado',\n idleLogout: 'Salir ahora',\n startPage: 'Pantalla inicial',\n startPageDescription: 'Dónde se abre la aplicación después del inicio de sesión.',\n startPageKeywords: 'inicio apertura login favorito última pantalla',\n startHome: 'Inicio',\n startLast: 'Última pantalla visitada',\n startFavorite: 'Favorito: {name}',\n startPageHint: 'Marque pantallas como favoritas para abrir en una de ellas.',\n defaultBadge: 'Credencial predeterminada',\n defaultBadgeDescription: 'Nivel de acceso con el que entra en esta aplicación, en cualquier navegador.',\n defaultBadgeKeywords: 'credencial badge nivel acceso perfil predeterminado login',\n defaultBadgeAuto: 'Automático (el de menor nivel)',\n defaultBadgeSaved: 'Credencial predeterminada guardada. Vale desde el próximo inicio de sesión.',\n defaultBadgeError: 'No fue posible guardar la credencial predeterminada.',\n defaultBadgeLoadError: 'No fue posible cargar sus credenciales.',\n notices: 'Notificaciones',\n noticesDescription: 'Los avisos que muestra esta aplicación.',\n noticesKeywords: 'notificación aviso alerta navegador push',\n browserNotices: 'Avisos del navegador',\n browserNoticesDescription: 'Aviso del sistema cuando la pestaña está en segundo plano.',\n browserNoticesDenied: 'El navegador bloqueó las notificaciones de este sitio. Permítalas en la configuración del navegador.',\n browserNoticesUnsupported: 'Este navegador no muestra notificaciones.',\n noticeOpen: 'Abrir',\n sync: 'Preferencias en la cuenta',\n syncDescription: 'Apariencia, región, favoritos y las demás preferencias lo acompañan en cualquier navegador.',\n syncKeywords: 'sincronizar nube cuenta navegador preferencias respaldo',\n syncSynced: 'Sincronizado a las {time}',\n syncSaving: 'Guardando…',\n syncLocal: 'Solo en este navegador: la cuenta no está disponible.',\n syncError: 'No fue posible sincronizar. Inténtelo de nuevo.',\n syncNow: 'Sincronizar ahora',\n },\n suggestions: {\n button: 'Sugerir una mejora',\n buttonHint: 'Sugerir una mejora para esta pantalla',\n modalTitle: 'Sugerir una mejora',\n intro: 'Cuéntenos qué facilitaría su trabajo. Quien administra la aplicación recibe el pedido y responde por aquí.',\n kind: 'Tipo',\n kinds: { melhoria: 'Mejora', nova_funcionalidade: 'Nueva funcionalidad', problema: 'Problema', outro: 'Otro' },\n statuses: {\n em_analise: 'En análisis', planejada: 'Planificada', em_desenvolvimento: 'En desarrollo',\n concluida: 'Concluida', recusada: 'Rechazada',\n },\n legacyStatuses: { nova: 'Nueva' },\n title: 'Título',\n titlePlaceholder: 'Ej.: Filtrar la lista por fecha',\n titleRequired: 'Indique un título.',\n description: 'Descripción',\n descriptionHint: 'Qué intentó hacer, qué esperaba y por qué ayudaría.',\n screen: 'Pantalla',\n screenHint: 'De dónde viene la sugerencia. Ajústela si es de otra pantalla.',\n send: 'Enviar sugerencia',\n cancel: 'Cancelar',\n sent: 'Sugerencia enviada. ¡Gracias!',\n sendError: 'No fue posible enviar la sugerencia. Inténtelo de nuevo.',\n similarHeading: 'Ya lo pidieron en esta pantalla',\n similarHint: 'Si es el mismo pedido, apóyelo en lugar de repetirlo.',\n vote: 'Yo también lo quiero',\n voted: 'Usted lo apoya',\n votes: { one: '{count} apoyo', other: '{count} apoyos' },\n voteError: 'No fue posible registrar el apoyo.',\n yours: 'Suya',\n mine: 'Mis sugerencias',\n mineEmpty: 'Todavía no envió sugerencias en esta aplicación.',\n mineError: 'No fue posible cargar sus sugerencias.',\n loadMore: 'Cargar más',\n statusFilter: 'Estado',\n allStatuses: 'Todos',\n adminReply: 'Respuesta de la administración',\n sentAt: 'Enviada el {date}',\n boardLabel: 'Tablero de sugerencias',\n search: 'Buscar sugerencias',\n kindFilter: 'Tipo',\n allKinds: 'Todos los tipos',\n refresh: 'Actualizar',\n boardEmpty: 'Todavía no hay sugerencias',\n boardEmptyHint: 'Los pedidos hechos con el botón \"Sugerir una mejora\" de las pantallas aparecen aquí.',\n boardFiltered: '{shown} de {total} sugerencias',\n loadError: 'No fue posible cargar las sugerencias.',\n moveError: 'No fue posible mover la sugerencia. El tablero se recargó.',\n removedAuthor: 'Persona eliminada',\n noScreen: 'Sin pantalla',\n noDescription: 'Sin descripción.',\n requestedBy: 'Pedida por',\n requestedAt: 'El',\n status: 'Estado',\n statusSaved: 'Estado actualizado.',\n statusError: 'No fue posible cambiar el estado.',\n history: 'Historial',\n historyEmpty: 'Todavía sin movimientos.',\n eventStatus: '{actor} la movió de {from} a {to}',\n eventComment: '{actor} comentó',\n someone: 'Alguien',\n comment: 'Comentario para quien la pidió',\n commentHint: 'Quien la pidió lo ve en la página \"Sugerencias de la app\".',\n commentSend: 'Comentar',\n commentSent: 'Comentario enviado.',\n commentError: 'No fue posible enviar el comentario.',\n commentRequired: 'Escriba el comentario.',\n viewLabel: 'Vista',\n viewBoard: 'Tablero',\n viewArchive: 'Archivo',\n kpis: 'Indicadores de las sugerencias',\n kpiOpen: 'En curso',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Concluidas en {days} días',\n kpiDoneToday: '+{count} hoy',\n kpiDoneNoneToday: 'Ninguna concluida hoy',\n kpiOverdueTrend: '+{count} desde ayer',\n kpiOverdueSteady: 'Ninguna nueva desde ayer',\n kpiSoon: 'Por vencer',\n kpiMineHint: 'Abiertas con usted entre los responsables',\n kpiPriority: 'Abiertas por prioridad',\n kpiPriorityNone: 'Ninguna abierta',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Filtros del tablero',\n moreFilters: 'Más filtros',\n moreFiltersActive: 'Más filtros ({count})',\n allBoardStatuses: 'Todos los estados',\n newTaskIn: 'Nueva tarea en {status}',\n newTaskOptions: 'Crear en otra columna',\n columnOldest: 'La más antigua hace {age}',\n columnOverdue: { one: '{count} vencida', other: '{count} vencidas' },\n columnEmpty: 'Ninguna tarea en esta columna.',\n columnEmptyFiltered: 'Ninguna tarea con estos filtros.',\n columnEmptyHints: {\n em_analise: 'Los pedidos nuevos llegan aquí para que el equipo los evalúe.',\n planejada: 'Lo que ya se aceptó y espera su turno.',\n em_desenvolvimento: 'Lo que el equipo está haciendo ahora.',\n concluida: 'Las entregas de los últimos {days} días quedan aquí.',\n },\n duration: { days: '{d} d {h} h', hours: '{h} h {m} min', minutes: '{m} min' },\n createdOn: 'Creada el {date}',\n dueWithin: 'En plazo · hasta {date}',\n dueLateDays: { one: 'Vencida hace {count} día', other: 'Vencida hace {count} días' },\n screenFilter: 'Pantalla',\n allScreens: 'Todas las pantallas',\n authorFilter: 'Quién la pidió',\n allAuthors: 'Todas las personas',\n sort: 'Ordenar',\n sorts: { position: 'Orden del tablero', votes: 'Más apoyadas', recent: 'Más recientes' },\n sortHint: 'Con este orden, arrastrar solo cambia la columna (la tarjeta va al final).',\n clearFilters: 'Limpiar filtros',\n topVoted: 'Más apoyada',\n comments: { one: '{count} comentario', other: '{count} comentarios' },\n statusSince: 'Desde el {date}',\n openScreen: 'Abrir la pantalla',\n statusChange: 'Cambiar el estado',\n statusComment: 'Comentario (opcional)',\n statusCommentHint: 'Va junto con el cambio; la persona lo ve en \"Mis sugerencias\".',\n statusApply: 'Cambiar estado',\n archiveLabel: 'Archivo de sugerencias',\n archiveSearch: 'Buscar en el archivo',\n archiveEmpty: 'Nada en el archivo',\n archiveEmptyHint: 'Las sugerencias rechazadas y las concluidas hace más de {days} días aparecen aquí.',\n archiveCount: { one: '{count} sugerencia en el archivo', other: '{count} sugerencias en el archivo' },\n closedOn: { concluida: 'Concluida el {date}', recusada: 'Rechazada el {date}' },\n pagination: 'Páginas del archivo',\n reopen: 'Reabrir',\n reopened: 'Sugerencia reabierta: volvió a En análisis.',\n reopenError: 'No fue posible reabrir la sugerencia.',\n newTask: 'Nueva tarea',\n addTaskPlaceholder: 'Título de la tarea (Enter crea)',\n taskCreated: 'Tarea creada.',\n createError: 'No fue posible crear la tarea.',\n saveError: 'No fue posible guardar. Inténtelo de nuevo.',\n kpiMine: 'Asignadas a mí',\n kpiOverdue: 'Vencidas',\n assigneeFilter: 'Responsable',\n allAssignees: 'Cualquier responsable',\n assigneeMine: 'Mías',\n assigneeNone: 'Sin responsable',\n labelFilter: 'Etiqueta',\n allLabels: 'Todas las etiquetas',\n priorityFilter: 'Prioridad',\n allPriorities: 'Todas las prioridades',\n dueFilter: 'Plazo',\n dueAny: 'Cualquier plazo',\n dueOverdueFilter: 'Vencidas',\n dueSoonFilter: 'Vencen hoy o mañana',\n priority: 'Prioridad',\n priorities: { urgente: 'Urgente', alta: 'Alta', media: 'Media', baixa: 'Baja' },\n dueOn: 'Hasta el {date}',\n dueToday: 'Vence hoy',\n dueTomorrow: 'Vence mañana',\n dueLate: 'Venció el {date}',\n checklistSpoken: '{done} de {total} ítems hechos',\n moreAssignees: '+{count}',\n cardMenu: 'Acciones de {key}',\n menuStatus: 'Cambiar estado',\n menuAssignMe: 'Asignarme',\n menuCopyLink: 'Copiar enlace',\n menuCopyKey: 'Copiar clave',\n menuLabel: 'Etiquetas',\n menuNoLabels: 'Ninguna etiqueta en la aplicación',\n menuPriority: 'Prioridad',\n menuArchive: 'Archivar',\n menuRestore: 'Restaurar en el tablero',\n menuDelete: 'Eliminar',\n labelColorName: 'Color {n}',\n linkCopied: 'Enlace copiado.',\n keyCopied: 'Clave copiada.',\n copyError: 'No fue posible copiar.',\n deleteHeading: '¿Eliminar {key}?',\n deleteMessage: 'La tarea, la lista de control, los comentarios y las actividades se eliminan definitivamente. No se puede deshacer.',\n deleteConfirm: 'Eliminar',\n deleted: 'Tarea eliminada.',\n archivedToast: 'Tarea archivada: está en el Archivo.',\n restoredToast: 'Tarea de vuelta en el tablero.',\n assignedToMe: 'Asignada a usted.',\n archivedTag: 'Archivada',\n taskLabel: 'Tarea',\n close: 'Cerrar',\n editTitle: 'Editar título',\n editDescription: 'Editar descripción',\n save: 'Guardar',\n checklist: 'Lista de control',\n checklistAdd: 'Agregar ítem',\n checklistPlaceholder: 'Nuevo ítem (Enter agrega)',\n checklistOnCard: 'Mostrar en la tarjeta',\n checklistEmpty: 'Todavía sin ítems.',\n checklistRemove: 'Quitar \"{text}\"',\n checklistUp: 'Subir \"{text}\"',\n checklistDown: 'Bajar \"{text}\"',\n tabComments: 'Comentarios',\n tabActivity: 'Historial',\n commentsEmpty: 'Todavía sin comentarios.',\n activityEmpty: 'Todavía sin actividades.',\n commentInternal: 'Solo para el equipo (interno: quien la pidió no lo ve)',\n internalTag: 'Interno',\n activity: {\n created: '{actor} creó la tarea',\n title: '{actor} cambió el título de \"{from}\" a \"{to}\"',\n description: '{actor} editó la descripción',\n kind: '{actor} cambió el tipo de {from} a {to}',\n priority: '{actor} cambió la prioridad de {from} a {to}',\n start_date: '{actor} fijó el inicio para el {to}',\n start_date_removed: '{actor} quitó la fecha de inicio',\n due_date: '{actor} fijó la conclusión para el {to}',\n due_date_removed: '{actor} quitó la fecha de conclusión',\n cover: '{actor} cambió la portada',\n cover_removed: '{actor} quitó la portada',\n checklist_on_card: '{actor} cambió la lista de control en la tarjeta',\n screen: '{actor} cambió la pantalla a {to}',\n assignee_added: '{actor} la asignó a {to}',\n assignee_removed: '{actor} quitó a {from} de los responsables',\n watcher_added: '{actor} agregó a {to} como involucrado',\n watcher_removed: '{actor} quitó a {from} de los involucrados',\n label_added: '{actor} agregó la etiqueta {to}',\n label_removed: '{actor} quitó la etiqueta {from}',\n checklist_added: '{actor} agregó \"{to}\" a la lista de control',\n checklist_done: '{actor} completó \"{to}\"',\n checklist_undone: '{actor} reabrió \"{to}\"',\n checklist_renamed: '{actor} renombró \"{from}\" a \"{to}\" en la lista de control',\n checklist_removed: '{actor} quitó \"{from}\" de la lista de control',\n archived: '{actor} archivó la tarea',\n restored: '{actor} restauró la tarea en el tablero',\n merged: '{actor} agrupó esta en {to}',\n merged_here: '{actor} agrupó {to} aquí',\n unmerged: '{actor} desagrupó esta de {from}',\n unmerged_here: '{actor} desagrupó {from} de aquí',\n other: '{actor} modificó la tarea',\n },\n assignees: 'Responsables',\n assignMe: 'Asignarme',\n addAssignee: 'Agregar responsable',\n watchers: 'Involucrados',\n addWatcher: 'Agregar involucrado',\n removePerson: 'Quitar a {name}',\n peopleSearch: 'Buscar persona',\n peopleEmpty: 'No se encontró a nadie.',\n nobody: 'Nadie',\n reporter: 'Informante',\n originUser: 'Pedida desde la pantalla',\n originTeam: 'Creada por el equipo',\n startDate: 'Inicio',\n dueDate: 'Conclusión',\n labels: 'Etiquetas',\n addLabel: 'Etiquetas',\n createLabel: 'Crear la etiqueta \"{name}\"',\n labelColor: 'Color de la etiqueta',\n noLabels: 'Sin etiquetas',\n screenOrigin: 'Pantalla de origen',\n votesField: 'Apoyos',\n createdAt: 'Creada el',\n updatedAt: 'Actualizada el',\n lastChange: 'Última modificación {when} por {actor}',\n lastChangeNoActor: 'Última modificación {when}',\n key: 'Clave',\n copyKey: 'Copiar la clave',\n newTaskHeading: 'Nueva tarea',\n createTask: 'Crear tarea',\n draftHint: 'Los responsables, la lista de control y los comentarios quedan disponibles cuando se cree la tarea.',\n assignMeOnCreate: 'Asignarme',\n appSuggestions: 'Sugerencias de la aplicación',\n listView: 'Qué sugerencias mostrar',\n tabAll: 'Todas',\n tabMine: 'Mías',\n appSearch: 'Buscar por título, descripción o SUG-12',\n thisScreen: 'De esta pantalla',\n appSorts: { votes: 'Más apoyadas', recent: 'Recientes' },\n appEmpty: 'Todavía no hay sugerencias',\n appEmptyHint: 'Sea la primera persona en sugerir una mejora.',\n appEmptyFiltered: 'Ninguna sugerencia con estos filtros.',\n appError: 'No fue posible cargar las sugerencias de la aplicación.',\n support: 'Apoyar {count}',\n supported: 'Apoyada {count}',\n ownSupportHint: 'Es su sugerencia: su interés ya cuenta.',\n publicComments: 'Comentarios',\n publicCommentsEmpty: 'Todavía sin comentarios de la administración.',\n commentsError: 'No fue posible cargar los comentarios.',\n moreComments: 'Más comentarios',\n appPagination: 'Páginas de las sugerencias',\n menuMerge: 'Agrupar en…',\n mergeHeading: 'Agrupar {key} en…',\n mergeIntro: 'Elija la sugerencia principal. Quien pidió y quien apoyó esta pasan a ella; esta sale del tablero y queda en el archivo, con los comentarios.',\n mergeSearch: 'Buscar por la clave o el título',\n mergeNone: 'Ninguna sugerencia abierta para agrupar.',\n mergeHasMerged: 'Otras sugerencias están agrupadas en esta. Desagrúpelas antes de agruparla en otra.',\n mergePreview: '{votes} y {reporters} pasan a {key}.',\n mergeCalculating: 'Calculando lo que pasa…',\n mergePreviewError: 'No fue posible calcular el agrupamiento.',\n reportersCount: { one: '{count} solicitante', other: '{count} solicitantes' },\n mergeConfirmHeading: '¿Agrupar {key} en {target}?',\n mergeConfirmMessage: 'Se puede deshacer después, en \"Desagrupar\".',\n mergeConfirm: 'Agrupar',\n mergedToast: '{key} agrupada en {target}.',\n mergeError: 'No fue posible agrupar la sugerencia.',\n mergedTag: 'Agrupada',\n mergedInto: 'Agrupada en {key}',\n mergedIntoHint: 'Los apoyos y quienes la pidieron están en la principal; los comentarios quedan aquí.',\n openMerged: 'Abrir {key}',\n unmerge: 'Desagrupar',\n unmergeLabel: 'Desagrupar {key}',\n unmergedToast: '{key} desagrupada: volvió al tablero.',\n reporters: 'Solicitantes',\n reporterAuthor: 'Autor',\n reporterVia: 'vía {key}',\n mergedHere: 'Agrupadas aquí',\n mergedFrom: '{key} agrupada en {target}',\n mergedFromHint: 'Pedidos iguales se volvieron uno: sígalo por esta.',\n buttonMenu: 'Sugerencias',\n openPage: 'Ver sugerencias de la app',\n screenPick: 'Pantalla',\n screenPickHint: 'La pantalla que debe cambiar. Si todavía no existe, elija \"Nueva pantalla\".',\n screenPickPlaceholder: 'Busque por el nombre de la pantalla',\n newScreenOption: 'Nueva pantalla (todavía no existe)',\n newScreenName: 'Nombre de la nueva pantalla',\n newScreenHint: 'Cómo llamaría a la pantalla y en qué parte del menú quedaría.',\n newScreenRequired: 'Indique el nombre de la nueva pantalla.',\n newScreenTag: 'Nueva pantalla',\n waiting: { solicitante: 'Esperando al solicitante', responsaveis: 'Esperando a los responsables' },\n waitingFilter: 'Esperando',\n waitingAny: 'Cualquier situación',\n waitingClear: 'Nadie (conversación al día)',\n waitingSaved: 'Situación de la conversación actualizada.',\n menuWaiting: 'Esperando',\n groupFilter: 'Grupo',\n allGroups: 'Todos los grupos',\n requestingGroups: 'Grupos solicitantes',\n noGroups: 'Sin grupo (creada por el equipo)',\n unread: { zero: 'ninguna nueva', one: '{count} nueva', other: '{count} nuevas' },\n fromRequester: 'Solicitante',\n cardChecklist: { one: '{count} actividad ({done}/{count})', other: '{count} actividades ({done}/{count})' },\n requestedByName: 'Pedida por {name}',\n tabSummary: 'Resumen',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter envía; Shift+Enter agrega un salto de línea.',\n inbox: {\n label: 'Sugerencias',\n comment: '{name}: {comment}',\n status: '{name} cambió el estado a {status}',\n },\n page: {\n title: 'Sugerencias de la app',\n allTitle: 'Todas las sugerencias',\n statusPart: '{count} {status}',\n description: 'Siga lo que usted pidió, lo que pidió su grupo y las sugerencias en las que está involucrado, y converse con los responsables.',\n reasons: { autor: 'Mías', relator: 'Agrupadas', envolvido: 'Involucrado', responsavel: 'Responsable', grupo: 'De mi grupo' },\n reasonHints: {\n autor: 'Usted pidió esta sugerencia.',\n relator: 'Un pedido suyo fue agrupado en esta sugerencia.',\n envolvido: 'El equipo lo incluyó como involucrado.',\n responsavel: 'Usted es responsable de esta sugerencia.',\n grupo: 'Alguien de su grupo pidió esta sugerencia.',\n },\n reasonFilter: 'Por qué la veo',\n allReasons: 'Todas',\n needsYou: 'Necesitan su respuesta',\n sorts: { activity: 'Actividad reciente', recent: 'Más nuevas', votes: 'Más apoyadas' },\n empty: 'Todavía no hay sugerencias aquí.',\n emptyHint: 'Pida una mejora en \"Sugerir mejora\": aparece aquí con la conversación.',\n emptyFiltered: 'Ninguna sugerencia con esos filtros.',\n error: 'No fue posible cargar las sugerencias.',\n count: { one: '{count} sugerencia', other: '{count} sugerencias' },\n pickOne: 'Elija una sugerencia para ver los detalles y la conversación.',\n notFound: 'Sugerencia no encontrada, o usted no tiene acceso a ella.',\n conversation: 'Conversación',\n conversationEmpty: 'Nadie escribió todavía.',\n conversationError: 'No fue posible cargar la conversación.',\n olderMessages: 'Mensajes anteriores',\n reply: 'Su mensaje',\n replyPlaceholder: 'Responda a los responsables, dé más detalles…',\n replySend: 'Enviar',\n replyError: 'No fue posible enviar el mensaje.',\n readOnly: 'Usted sigue esta sugerencia por su grupo: puede apoyarla, pero la conversación es solo de quienes la pidieron, los involucrados y los responsables.',\n team: 'Equipo',\n you: 'Usted',\n groups: 'Grupos',\n details: 'Detalles',\n listLabel: 'Sugerencias',\n filtersLabel: 'Filtros',\n waitingYou: 'Los responsables esperan su respuesta.',\n waitingTeam: 'Esperando a los responsables.',\n },\n },\n};\n","import { InjectionToken, Provider, computed, inject } from '@angular/core';\nimport { HermesI18nService, liveCatalog } from '@trismegisto/angular';\nimport { CatalogOverride, mergeCatalog } from '@trismegisto/primitives';\nimport { SPINE_MESSAGES_EN } from './spine-messages.en';\nimport { SPINE_MESSAGES_ES } from './spine-messages.es';\nimport { SPINE_MESSAGES_PT_BR, SpineMessages } from './spine-messages';\n\nexport type SpineMessagesOverride = CatalogOverride<SpineMessages>;\n\nexport interface SpineI18nConfig {\n /** Catálogos extras ou substitutos, por idioma (mesmas chaves do `SpineMessages`). */\n readonly catalogs?: Readonly<Record<string, SpineMessages>>;\n /** Textos avulsos sobrescritos por cima do catálogo ativo, em qualquer idioma. */\n readonly override?: SpineMessagesOverride;\n}\n\nexport const SPINE_I18N_CONFIG = new InjectionToken<SpineI18nConfig>('SPINE_I18N_CONFIG', {\n providedIn: 'root',\n factory: () => ({}),\n});\n\nconst BUILT_IN: Readonly<Record<string, SpineMessages>> = {\n 'pt-BR': SPINE_MESSAGES_PT_BR,\n en: SPINE_MESSAGES_EN,\n 'en-US': SPINE_MESSAGES_EN,\n es: SPINE_MESSAGES_ES,\n};\n\n/** Último catálogo vivo criado pelo `SPINE_MESSAGES` (ver `currentSpineMessages`). */\nlet current: SpineMessages | null = null;\n\n/**\n * Textos do spine no idioma ativo para quem não tem injeção (funções puras como o `unwrap` do\n * `@trismegisto/spine/graphql`, chamado em qualquer lugar do app). É o mesmo catálogo vivo do\n * `SPINE_MESSAGES` — segue `setLocale` — assim que o shell o injetou; antes disso, o pt-BR.\n */\nexport function currentSpineMessages(): SpineMessages {\n return current ?? SPINE_MESSAGES_PT_BR;\n}\n\n/**\n * Textos do spine no idioma ativo da lib (`HermesI18nService.locale`): uma troca de idioma com\n * `setLocale` atualiza a lib e o spine juntos, sem recarregar. Leitura igual à do `HERMES_MESSAGES`\n * (`inject(SPINE_MESSAGES).header.settings`), viva também em template.\n *\n * `meta.locale` é o de formatação da lib (`HermesI18nService.formatLocale`) quando a língua é a mesma: a\n * variante regional (`en-GB`) e o relógio/primeiro dia da semana escolhidos em Região valem também nas\n * datas e horas que o spine formata.\n */\nexport const SPINE_MESSAGES = new InjectionToken<SpineMessages>('SPINE_MESSAGES', {\n providedIn: 'root',\n factory: () => {\n const i18n = inject(HermesI18nService);\n const config = inject(SPINE_I18N_CONFIG);\n const catalogs = { ...BUILT_IN, ...config.catalogs };\n const active = computed(() => {\n const picked = i18n.pick(catalogs, SPINE_MESSAGES_PT_BR);\n const base = config.override ? mergeCatalog(config.override, picked) : picked;\n const locale = i18n.formatLocale();\n const sameLanguage = locale.split('-')[0].toLowerCase() === base.meta.locale.split('-')[0].toLowerCase();\n return sameLanguage && locale !== base.meta.locale ? { ...base, meta: { ...base.meta, locale } } : base;\n });\n current = liveCatalog(() => active());\n return current;\n },\n});\n\n/** Sobrescreve textos do spine e/ou acrescenta idiomas. O idioma em si vem de `provideHermesI18n`. */\nexport function provideSpineMessages(config: SpineI18nConfig): Provider {\n return { provide: SPINE_I18N_CONFIG, useValue: config };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trismegisto-spine.mjs","sources":["../../../projects/ui/src/route.model.ts","../../../projects/ui/src/route-tree.ts","../../../projects/ui/src/builtin-pages.ts","../../../projects/ui/src/hermes.imports.ts","../../../projects/ui/src/app-config.token.ts","../../../projects/ui/src/theme.service.ts","../../../projects/ui/src/theme-preset.service.ts","../../../projects/ui/src/density.service.ts","../../../projects/ui/src/brand.ts","../../../projects/ui/src/icons.generated.ts","../../../projects/ui/src/theme.initializer.ts","../../../projects/ui/src/package-info.token.ts","../../../projects/ui/src/preferences.service.ts","../../../projects/ui/src/admin-api.token.ts","../../../projects/ui/src/user-storage.ts","../../../projects/ui/src/quick-access.service.ts","../../../projects/ui/src/runtime-environment.ts","../../../projects/ui/src/i18n/spine-messages.ts","../../../projects/ui/src/i18n/spine-messages.en.ts","../../../projects/ui/src/i18n/spine-messages.es.ts","../../../projects/ui/src/i18n/spine-i18n.ts","../../../projects/ui/src/trismegisto-spine.ts"],"sourcesContent":["export interface Route {\n route_display_name?: string | null;\n route_icon?: string | null;\n route_name?: string | null;\n route_order?: number | null;\n route_path?: string | null;\n route_redirect?: string | null;\n route_redirect_to?: string | null;\n route_type?: string | null;\n /** A ROTA do nó (`web.routes.route_id`): nome/ícone/path. Reaproveitável em vários routers. */\n routed_id: string;\n routes?: Route[] | null;\n /**\n * Identidade da TELA: o router do client (`web.router.router_id`, a posição da tela na\n * navegação). Só no nó 'page' -- nó de grupo (navigation/menu/...) é compartilhado por vários\n * routers e não tem um próprio. É por ele que o spine acha o componente (`COMPONENT_ROUTES`),\n * o documento e a descrição.\n */\n router_id?: string | null;\n /** Texto curto da tela (`web.router.description`), exibido na barra da página abaixo do título. */\n description?: string | null;\n // Presente só no nó 'page' -- proveniência de template (web.router.source_template_router_id),\n // estável entre todos os clients vinculados ao mesmo template, ao contrário de router_id (que é\n // o router CLONADO, específico de cada client). Usado como fallback de resolução de componente\n // quando nenhum app registrou esse router_id diretamente, ver ComponentDistributorService.\n source_template_router_id?: string | null;\n}\n\n/** `router_id` da tela (nó 'page'); `null` em nó de grupo. */\nexport function routerIdOf(route: Route | null | undefined): string | null {\n return route?.router_id ?? null;\n}\n","import { Route } from './route.model';\n\n/**\n * Funde nós IRMÃOS que apontam para o mesmo endereço (`route_redirect`), em toda a árvore.\n *\n * Herança do roteamento antigo: o nível do nó (header/navigation/menu/item/submenu/page) dizia ONDE ele\n * era desenhado — header no topo, menu na lateral, o resto no `<router-outlet>` de cada app. Agora tudo\n * é menu (`spine-sidebar`) e o nível não importa mais, só o endereço. Só que o argos-auth-server monta a\n * view pulando nível vazio: um router header(\"laboratorio\")→page(\"prova-de-conceito\") e outro\n * navigation(\"laboratorio\")→page(\"dashboard\") viram dois nós de topo DIFERENTES com o mesmo\n * `/laboratorio`. Resultado: dois \"laboratorio\" no menu, e a resolução por nível (`findRouteThrough`, que\n * pega o PRIMEIRO irmão que casa) só enxergava os filhos de um deles — a página do outro caía no\n * fallback do `ViewGuard` (volta para o início). Achado real, 2026-10-07.\n *\n * Regras:\n * - Só funde irmãos da MESMA lista, com `route_redirect` igual e não vazio (grupo transparente, sem\n * endereço, nunca é fundido — não há o que comparar).\n * - O nó fundido é o primeiro da lista (mantém posição, nome, ícone e `routed_id` dele); `router_id`/\n * `description`/`source_template_router_id` vêm do primeiro que tiver. Os filhos de todos são\n * juntados (ordenados por `route_order`, estável) e fundidos de novo, recursivamente.\n * - Lista sem nenhum endereço repetido sai IGUAL (mesmo array, mesmos objetos): nada muda para app cuja\n * árvore já era consistente.\n * - Nunca muta a entrada (a view é do `ViewService` do orfeu, compartilhada).\n *\n * Use `spineRoutesOf(view)` em vez de ler `view.routes` direto: o resultado é guardado por identidade do\n * array, então todo consumidor (guard, painel, sidebar, busca...) recebe a MESMA árvore fundida.\n */\nexport function mergeRouteTree(routes: readonly Route[] | null | undefined): Route[] {\n if (!routes?.length) return [];\n const cached = cache.get(routes);\n if (cached) return cached;\n const merged = mergeLevel(routes);\n cache.set(routes, merged);\n return merged;\n}\n\n/** A árvore fundida da view atual (`ViewService.currentView`) — ver `mergeRouteTree`. */\nexport function spineRoutesOf(view: { routes?: readonly Route[] | null } | null | undefined): Route[] {\n return mergeRouteTree(view?.routes);\n}\n\nconst cache = new WeakMap<readonly Route[], Route[]>();\n\nfunction mergeLevel(routes: readonly Route[]): Route[] {\n const byRedirect = new Map<string, Route[]>();\n for (const r of routes) {\n const key = r?.route_redirect;\n if (!key) continue;\n const group = byRedirect.get(key);\n if (group) group.push(r);\n else byRedirect.set(key, [r]);\n }\n\n let changed = false;\n const out: Route[] = [];\n for (const r of routes) {\n const key = r?.route_redirect;\n const group = key ? byRedirect.get(key)! : null;\n if (group && group.length > 1) {\n changed = true;\n // Só o primeiro do grupo entra (com os filhos de todos); os demais somem daqui.\n if (group[0] === r) out.push(mergeGroup(group));\n continue;\n }\n const children = r?.routes;\n const mergedChildren = children?.length ? mergeLevel(children) : children;\n if (mergedChildren !== children) {\n changed = true;\n out.push({ ...r, routes: mergedChildren });\n } else {\n out.push(r);\n }\n }\n return changed ? out : (routes as Route[]);\n}\n\nfunction mergeGroup(group: Route[]): Route {\n const [base] = group;\n const pick = <K extends keyof Route>(key: K): Route[K] => group.find((r) => r[key] != null)?.[key] ?? base[key];\n const children = group\n .flatMap((r) => r.routes ?? [])\n .map((r, index) => ({ r, index }))\n .sort((a, b) => (a.r.route_order ?? Infinity) - (b.r.route_order ?? Infinity) || a.index - b.index)\n .map(({ r }) => r);\n return {\n ...base,\n router_id: pick('router_id'),\n description: pick('description'),\n source_template_router_id: pick('source_template_router_id'),\n routes: mergeLevel(children),\n };\n}\n","import { Type } from '@angular/core';\nimport { Route } from './route.model';\n\n/**\n * Página que o PRÓPRIO spine desenha, fora da árvore de rotas do backend (ex.: \"Sugestões do app\", de quem pede).\n *\n * As telas de um app vêm do argos-auth (`ViewService.currentView`): só existe o que o template/client cadastrou. Uma\n * página do spine precisa existir em TODO app que usa o recurso, sem migration nem cadastro por client — então ela se\n * registra aqui no bootstrap e a resolução de rotas (`resolveRouteChain`, `ComponentDistributorService`) a consulta\n * quando a árvore do backend NÃO resolve a URL. A árvore do app vence sempre: um app com rota própria no mesmo\n * endereço continua com a dele.\n *\n * A rota sintética é um nó 'page' de um nível só (`route_redirect` = o endereço), sem `routed_id`: o `x-route-id`\n * (auditoria) fica de fora, como numa página sem rota cadastrada. O `router_id` é a chave que o distribuidor usa para\n * achar o `load`, e não é UUID de propósito: não colide com nenhum router do banco.\n */\nexport interface SpineBuiltinPage {\n /** O nó da página: `route_redirect` (o endereço, ex. \"/sugestoes\"), nome, ícone e `router_id` (a chave). */\n readonly route: Route;\n /** Componente da página, via `import()` (fica num chunk próprio). */\n readonly load: () => Promise<Type<unknown>>;\n}\n\nconst pages = new Map<string, SpineBuiltinPage>();\n\n/** Registra (ou troca) uma página do spine. Chamado no bootstrap, por quem liga o recurso (ex.: `provideShell`). */\nexport function registerSpineBuiltinPage(page: SpineBuiltinPage): void {\n if (page.route.route_redirect) pages.set(page.route.route_redirect, page);\n}\n\n/** A página do spine no endereço (sem query/fragmento), ou null. */\nexport function spineBuiltinPageAt(url: string): SpineBuiltinPage | null {\n const path = (url.split(/[?#]/)[0] || '/').replace(/\\/+$/, '') || '/';\n return pages.get(path) ?? null;\n}\n\n/** A página do spine pelo `router_id` sintético (o que o distribuidor recebe), ou null. */\nexport function spineBuiltinPageById(routerId: string | null | undefined): SpineBuiltinPage | null {\n if (!routerId) return null;\n for (const page of pages.values()) if (page.route.router_id === routerId) return page;\n return null;\n}\n\n/** Só para testes: esquece as páginas registradas. */\nexport function clearSpineBuiltinPages(): void {\n pages.clear();\n}\n","import { Type } from '@angular/core';\nimport {\n AlertComponent,\n ButtonComponent,\n DrawerComponent,\n IconButtonComponent,\n IconComponent,\n MenuButtonComponent,\n MenuComponent,\n ModalComponent,\n SidebarComponent,\n SidebarGroupComponent,\n SidebarLinkComponent,\n SidebarNodeComponent,\n ToastStackComponent,\n} from '@trismegisto/angular';\n\n/**\n * Ponto único de import dos componentes standalone do `@trismegisto/angular` usados nos templates do\n * spine. O DS novo é standalone-only (sem agregador), então este array cumpre o mesmo papel prático:\n * um `@Component({ imports: [...HERMES_DS_IMPORTS] })` em vez de listar cada símbolo em cada arquivo\n * que usa `hm-*`.\n */\nexport const HERMES_DS_IMPORTS: readonly Type<unknown>[] = [\n AlertComponent,\n ButtonComponent,\n DrawerComponent,\n IconButtonComponent,\n IconComponent,\n MenuButtonComponent,\n MenuComponent,\n ModalComponent,\n SidebarComponent,\n SidebarGroupComponent,\n SidebarLinkComponent,\n SidebarNodeComponent,\n ToastStackComponent,\n];\n","import { InjectionToken } from '@angular/core';\nimport type { HermesThemeExtension } from '@trismegisto/primitives';\nimport { SpineLogoConfig } from './brand';\n\nexport interface SpineConfig {\n clientId: string;\n /**\n * Sobrescritas do app (opcional): nome e cores de uma família da lib (`replace: { poseidon: minhaFamilia }`) e o\n * desenho de uma fonte da lib (`replaceFonts: { figtree: minhaFonte }`), mais as iniciais (`defaultFamily`,\n * `defaultFont`). O app não acrescenta família nem fonte: o id salvo é sempre o da lib, e um app sem a sobrescrita\n * mostra a original. Ver `extendThemeConfig` do `@trismegisto/primitives`; a família se monta e exporta no\n * `hm-theme-builder`.\n */\n theme?: HermesThemeExtension;\n /** Nome do app exibido ao lado do logo no header (ex.: \"Hefesto\"). Padrão: \"Hermes\". */\n appName?: string;\n /**\n * Logo do header, servido pelo próprio app (caminho relativo ao `<base href>`, ex.: arquivo em\n * `src/assets/images/`). Formas:\n * - omitido: convenção `assets/images/logo.svg` (`SPINE_DEFAULT_LOGO`);\n * - `'assets/images/logo.png'`: um arquivo só, para os dois temas;\n * - `{ light, dark?, alt? }`: `dark` é usado no tema escuro (do `ThemeService`); `alt` substitui o texto\n * alternativo padrão;\n * - `false`: sem imagem (só o nome, sem nenhuma requisição).\n * Se a imagem não carregar (404/erro), o header esconde a imagem e mostra só o nome. Um componente de\n * marca em `SPINE_BRAND` (`@trismegisto/spine/layout`) tem prioridade sobre a imagem.\n */\n logo?: SpineLogoConfig | false;\n /** Mostra o `appName` ao lado do logo. Padrão: `true`. Com `false` o nome só aparece se não houver logo\n * visível (sem imagem, ou imagem que falhou) — o link da marca nunca fica sem texto. */\n showAppName?: boolean;\n /** Favicon do app (ex.: `'assets/favicon.ico'`). Se definido, o `provideUi` atualiza o `<link rel=\"icon\">`\n * do `index.html` (ou cria um) no bootstrap; sem isto o spine não mexe no favicon. */\n favicon?: string;\n /** Exibe a aba \"Especificação técnica\" da documentação das telas (`RouteDocument.loadTechnical`).\n * Padrão: `isDevMode()`. Apps com build de produção em homologação passam\n * `!environment.production` (ou equivalente) para mostrá-la fora de produção. */\n technicalDocs?: boolean;\n /**\n * Recursos opcionais do painel de configurações (todos desligados sem configuração). Ver `SpineFeatures`.\n */\n features?: SpineFeatures;\n}\n\n/** Um servidor MCP do app, oferecido em Sessões › \"Conectar um agente de IA\". */\nexport interface SpineMcpServer {\n /** Nome da entrada no `.mcp.json` (ex.: `hefesto`). Letras, números, `-` e `_`. */\n name: string;\n /** URL do MCP. Relativa (`/hefesto/mcp`) é resolvida contra a origem da página. */\n url: string;\n /** Rótulo exibido (padrão: `name`). */\n label?: string;\n /** Valor de `x-mcp-scopes` no modo só leitura. Omitido: o header não vai (o MCP já é só leitura sem ele). */\n readScopes?: string;\n /** Valor de `x-mcp-scopes` no modo leitura e escrita (ex.: `deploy.*`). Omitido: o servidor só é oferecido para leitura. */\n writeScopes?: string;\n}\n\n/** Tipo de aviso que o app emite (`SpineNoticesService.notify`), ligável/desligável em Configurações › Notificações. */\nexport interface SpineNoticeType {\n /** Identificador estável (ex.: `deploy-concluido`): é a chave da preferência salva. */\n id: string;\n label: string;\n description?: string;\n /** Ligado enquanto a pessoa não escolher. Padrão: `true`. */\n defaultEnabled?: boolean;\n}\n\n/**\n * Recursos opcionais do painel de configurações. Cada um só aparece quando ligado aqui (e, quando depende do Argos,\n * com a API da conta disponível — `AUTH_CONFIG` com `authority`/`realmId`).\n */\nexport interface SpineFeatures {\n /** Sessões › \"Conectar um agente de IA\": gera um token de aplicação e a configuração MCP pronta para colar.\n * Precisa de `SPINE_ADMIN_API` (tokens de aplicação). */\n aiAgent?: { servers: readonly SpineMcpServer[] };\n /** MFA › \"Atividade da conta\": entradas e tentativas que falharam desta conta (últimos 90 dias, API da conta). */\n accountActivity?: boolean;\n /** Conta › \"Encerrar por inatividade\". `true` = opções padrão; `{ min, max }` limita os minutos (com `max` a\n * opção \"Nunca\" some e a escolha é limitada a ele). */\n idleTimeout?: boolean | { min?: number; max?: number };\n /** Conta › \"Tela inicial\": início, um favorito ou a última tela visitada, aplicada depois do login. */\n startPage?: boolean;\n /** Conta › \"Crachá padrão\": o nível de acesso com que o login entra (guardado no Argos, vale nos outros navegadores). */\n defaultBadge?: boolean;\n /** Configurações › Notificações: os tipos de aviso que o app emite e o aviso do navegador com a aba em segundo plano. */\n notices?: { types: readonly SpineNoticeType[] };\n /** Preferências (aparência, região, acessibilidade, favoritos, tela inicial…) guardadas também na conta do Argos,\n * para acompanharem a pessoa em qualquer navegador. Sem a API da conta, ficam só no navegador. */\n accountPreferences?: boolean;\n /** Configuração inicial em tela cheia no primeiro acesso (aparência e o essencial). Ligada por padrão; `false`\n * desliga. \"Feita\" vale para a pessoa em todos os apps quando as preferências estão na conta. */\n initialSetup?: boolean;\n /** Avaliações (1 a 5 estrelas e um comentário): \"Avaliar esta tela\" na barra da página e \"Avaliar o {app}\" no menu\n * do perfil; quem administra vê os resultados no auto-serviço (tela Avaliações). Ligado por padrão quando há\n * `SPINE_ADMIN_API` (`/me/ratings`), como as sugestões; `false` desliga. Sem a API, nada aparece. */\n ratings?: boolean;\n /** Sugestões de melhoria: \"Sugerir melhoria\" na barra da página (com \"Minhas sugestões\"); quem administra acompanha\n * num kanban no auto-serviço (tela Sugestões). Ligado por padrão quando há `SPINE_ADMIN_API`\n * (`/me/suggestions`); `false` desliga. Sem a API, nada aparece. */\n suggestions?: boolean;\n /** Link \"Pular para o conteúdo\" (`hm-skip-link`) como primeira parada do Tab, levando o foco à área de trabalho.\n * Desligado por padrão. */\n skipLink?: boolean;\n /** Aviso de alterações não salvas: com a tela registrada (`registerSpineUnsavedChanges`), fechar a aba dela (ou o\n * painel, \"fechar as outras\"…) e trocar de tela dentro dela pedem confirmação, e o navegador avisa ao recarregar ou\n * fechar a página. Desligado por padrão. */\n unsavedChanges?: boolean;\n}\n\nexport const SPINE_CONFIG = new InjectionToken<SpineConfig>('SPINE_CONFIG');\n","import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, NgZone, Optional, PLATFORM_ID, effect, inject } from '@angular/core';\nimport { HermesThemeMode, HermesThemeName, HermesThemeService } from '@trismegisto/angular';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\n\n/**\n * Wrapper fino sobre `HermesThemeService` (que já persiste em `localStorage` e aplica\n * `data-theme`/`--hm-*` via `HermesThemeDirective`): mantém o mesmo nome/API de injeção do\n * spine antigo, e adiciona só o que o DS novo não cobre — sincronização entre ABAS do\n * navegador via `BroadcastChannel` (o `ThemeService` antigo tinha isso; `HermesThemeService`\n * é por-aba). Aplica os atributos diretamente no `<body>` em vez de exigir que cada app\n * consumidor lembre de colocar `hermesTheme` no template — mesmo espírito do antigo, que\n * também escrevia `hermes-theme` no `<body>` a partir do serviço, não do template.\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemeService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n private channel: BroadcastChannel | null = null;\n private readonly channelName: string;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n @Inject(PLATFORM_ID) private platformId: Object,\n private zone: NgZone,\n @Optional() @Inject(SPINE_CONFIG) config: SpineConfig | null,\n ) {\n const ns = config?.clientId ?? 'app';\n this.channelName = `spine_theme_${ns}`;\n\n if (isPlatformBrowser(this.platformId)) {\n effect(() => {\n const body = this.document.body;\n body.setAttribute('data-theme', this.hermesTheme.theme());\n body.setAttribute('data-family', this.hermesTheme.family());\n body.setAttribute('data-density', this.hermesTheme.density());\n body.setAttribute('data-font', this.hermesTheme.font());\n const palette = this.hermesTheme.palette();\n body.style.setProperty('--hm-accent', palette.accent);\n body.style.setProperty('--hm-action', palette.accent);\n body.style.setProperty('--hm-panel-bg', palette.panelBg);\n body.style.setProperty('--hm-panel-accent', palette.accent);\n });\n\n this.channel = new BroadcastChannel(this.channelName);\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'THEME_CHANGED') this.hermesTheme.setTheme(e.data.theme);\n if (e.data?.type === 'THEME_MODE_CHANGED') this.hermesTheme.setMode(e.data.mode);\n });\n }\n }\n\n get current(): HermesThemeName {\n return this.hermesTheme.theme();\n }\n\n /** Escolha do usuário: `light`, `dark` ou `system` (acompanha o sistema operacional). */\n get mode(): HermesThemeMode {\n return this.hermesTheme.mode();\n }\n\n setMode(mode: HermesThemeMode) {\n this.hermesTheme.setMode(mode);\n this.channel?.postMessage({ type: 'THEME_MODE_CHANGED', mode });\n }\n\n setTheme(theme: HermesThemeName) {\n this.hermesTheme.setTheme(theme);\n this.channel?.postMessage({ type: 'THEME_CHANGED', theme });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HermesFamily, HermesThemeService } from '@trismegisto/angular';\n\n/**\n * Wrapper fino sobre `HermesThemeService.family`/`setFamily`/`families` — substitui o\n * `applyThemePreset`/`PRESETS` do addon `theme-builder` antigo (que já expunha só paletas\n * FIXAS pré-definidas, nunca cor arbitrária digitada pelo usuário: o spine antigo usava só\n * essa lista fixa, então trocar para `family` do DS novo é a mesma mecânica de UX — grid de\n * paletas prontas —, só muda o catálogo de opções e como cada uma deriva claro/escuro\n * internamente). Persistência entre abas já vem de `HermesThemeService` (localStorage).\n */\n@Injectable({ providedIn: 'root' })\nexport class ThemePresetService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n get current(): HermesFamily {\n const id = this.hermesTheme.family();\n return this.families.find((f) => f.id === id) ?? this.families[0];\n }\n\n get families(): readonly HermesFamily[] {\n return this.hermesTheme.families;\n }\n\n setPreset(family: HermesFamily): void {\n this.hermesTheme.setFamily(family.id);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, NgZone, Optional, PLATFORM_ID, inject } from '@angular/core';\nimport { HermesDensity, HermesThemeService } from '@trismegisto/angular';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\n\nexport interface DensitySetting {\n name: HermesDensity;\n}\n\n/**\n * Wrapper fino sobre `HermesThemeService.density`/`setDensity` (já persistido em\n * `localStorage` pelo DS novo) — mantém o nome/API do spine antigo e adiciona a\n * sincronização entre abas via `BroadcastChannel` que `HermesThemeService` não tem\n * (é por-aba). Ver `ThemeService` (mesmo padrão, mesmo motivo).\n */\n@Injectable({ providedIn: 'root' })\nexport class DensityService {\n private readonly hermesTheme = inject(HermesThemeService);\n\n private channel: BroadcastChannel | null = null;\n private readonly channelName: string;\n\n constructor(\n @Inject(PLATFORM_ID) private platformId: Object,\n private zone: NgZone,\n @Optional() @Inject(SPINE_CONFIG) config: SpineConfig | null,\n ) {\n const ns = config?.clientId ?? 'app';\n this.channelName = `spine_density_${ns}`;\n\n if (isPlatformBrowser(this.platformId)) {\n this.channel = new BroadcastChannel(this.channelName);\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'DENSITY_CHANGED') this.hermesTheme.setDensity(e.data.density);\n });\n }\n }\n\n get current(): DensitySetting {\n return { name: this.hermesTheme.density() };\n }\n\n setDensity(density: HermesDensity) {\n this.hermesTheme.setDensity(density);\n this.channel?.postMessage({ type: 'DENSITY_CHANGED', density });\n }\n\n /** Só alterna entre comfortable e compact — mesmo comportamento do spine antigo\n * (que chamava a densidade não-compacta de \"regular\"; o DS novo chama de \"comfortable\"). */\n toggleDensity() {\n this.setDensity(this.current.name === 'compact' ? 'comfortable' : 'compact');\n }\n}\n","/**\n * Logo e favicon do app (`SpineConfig.logo`/`SpineConfig.favicon`). O spine não embute marca nenhuma:\n * o arquivo é sempre do app, servido de `src/assets`.\n */\n\n/** Logo do header: um caminho (os dois temas) ou as variantes clara/escura + texto alternativo. */\nexport type SpineLogoConfig = string | { light: string; dark?: string; alt?: string };\n\n/** Convenção quando o app não configura `logo`: `src/assets/images/logo.svg` servido em `assets/images/`. */\nexport const SPINE_DEFAULT_LOGO = 'assets/images/logo.svg';\n\n/** Logo já normalizado. */\nexport interface SpineLogoSources {\n light: string;\n dark: string | null;\n /** Texto alternativo explícito; `null` usa o padrão (o nome do app). */\n alt: string | null;\n}\n\n/** Normaliza `SpineConfig.logo`: omitido → convenção; `false`/vazio → sem imagem (`null`). */\nexport function resolveSpineLogo(logo: SpineLogoConfig | false | null | undefined): SpineLogoSources | null {\n if (logo === undefined || logo === null) return { light: SPINE_DEFAULT_LOGO, dark: null, alt: null };\n if (logo === false) return null;\n if (typeof logo === 'string') return logo.trim() ? { light: logo, dark: null, alt: null } : null;\n if (!logo.light?.trim()) return null;\n return { light: logo.light, dark: logo.dark?.trim() ? logo.dark : null, alt: logo.alt ?? null };\n}\n\nconst FAVICON_TYPES: Record<string, string> = {\n ico: 'image/x-icon',\n svg: 'image/svg+xml',\n png: 'image/png',\n gif: 'image/gif',\n webp: 'image/webp',\n};\n\n/**\n * Aponta o favicon do documento para `href`: atualiza o primeiro `<link rel=\"icon\">` (ou `shortcut icon`)\n * e remove os outros (senão o navegador pode continuar escolhendo um deles); sem nenhum, cria um no\n * `<head>`. O `type` acompanha a extensão (some quando ela é desconhecida).\n */\nexport function applySpineFavicon(doc: Document, href: string): HTMLLinkElement | null {\n if (!href?.trim() || !doc?.head) return null;\n const links = Array.from(doc.head.querySelectorAll<HTMLLinkElement>('link[rel~=\"icon\"]'));\n const link = links.shift() ?? doc.createElement('link');\n links.forEach((extra) => extra.remove());\n link.rel = 'icon';\n const ext = href.split(/[?#]/)[0].split('.').pop()?.toLowerCase() ?? '';\n const type = FAVICON_TYPES[ext];\n if (type) link.type = type;\n else link.removeAttribute('type');\n link.setAttribute('href', href);\n if (!link.isConnected) doc.head.appendChild(link);\n return link;\n}\n","// GERADO por scripts/generate-spine-icons.mjs — não editar à mão.\n// Ícones que o próprio spine desenha (dados embutidos, não importados do catálogo — ver o cabeçalho do gerador).\n// O `provideUi()` registra este conjunto no bootstrap; o resto do catálogo chega sob demanda\n// (`provideHermesIconLoader`).\nimport type { RegisteredIcon } from '@trismegisto/icons';\n\n/** Os 125 ícones que o spine usa por dentro. */\nexport const SPINE_ICONS: readonly RegisteredIcon[] = [\n {\"name\":\"accessibility-1\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><circle cx=\\\"12\\\" cy=\\\"7.6\\\" r=\\\"1.4\\\"/><path d=\\\"M7.5 10.5l4.5.8 4.5-.8M12 11.3v2.4M12 13.7l-2 3.6M12 13.7l2 3.6\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"alarm-clock\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"13\\\" r=\\\"7\\\"/><path d=\\\"M12 9.5v3.8l2.2 1.5M4 6.5l3-2.5M20 6.5l-3-2.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"angle\",\"body\":\"<path d=\\\"M6.5 14.5l5.5-5.5 5.5 5.5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"announcement\",\"body\":\"<path d=\\\"M3.5 10.5a1 1 0 0 1 1-1h3L17 5v14l-9.5-4.5h-3a1 1 0 0 1-1-1z\\\"/><path d=\\\"M7.5 9.5v5\\\"/><path d=\\\"M8 14.8l1 4a1 1 0 0 0 1 .7h.8a1 1 0 0 0 1-1.2l-.8-2.6\\\"/><path d=\\\"M20 9.5a3.5 3.5 0 0 1 0 5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"application\",\"body\":\"<rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"18\\\" height=\\\"15\\\" rx=\\\"2\\\"/><path d=\\\"M3 9h18\\\"/><path d=\\\"M6.5 6.8h.01\\\"/><path d=\\\"M9.5 6.8h.01\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"applications\",\"body\":\"<rect x=\\\"4\\\" y=\\\"4\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"4\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"4\\\" y=\\\"13.5\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"13.5\\\" width=\\\"6.5\\\" height=\\\"6.5\\\" rx=\\\"1.5\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"archive\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4.5\\\" width=\\\"17\\\" height=\\\"4.5\\\" rx=\\\"1.5\\\"/><path d=\\\"M5 9v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V9M10 13h4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"arrow\",\"body\":\"<path d=\\\"M12 19V5M8.1 8.9L12 5l3.9 3.9\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"arrow-mini\"]} as RegisteredIcon,\n {\"name\":\"arrow-send\",\"body\":\"<path d=\\\"M21 3L10.5 13.5M21 3l-6.5 18-4-7.5L3 9.5z\\\"/>\"} as RegisteredIcon,\n {\"name\":\"assign-user\",\"body\":\"<circle cx=\\\"9.5\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M3 20c.7-3.4 3.2-5.5 6.5-5.5 1.7 0 3 .5 4 1.2\\\"/><path d=\\\"M14.5 17.5h6M17.5 14.5l3 3-3 3\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"authenticator\",\"body\":\"<rect x=\\\"7\\\" y=\\\"2.5\\\" width=\\\"10\\\" height=\\\"19\\\" rx=\\\"2.5\\\"/><path d=\\\"M10.5 18.5h3\\\"/><path d=\\\"M9.8 10.5l1.8 1.8 3-3.3\\\"/>\"} as RegisteredIcon,\n {\"name\":\"ballon-question\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M10 9a2 2 0 1 1 3 1.7c-.7.4-1 .8-1 1.5\\\"/><path d=\\\"M12 14.8h.01\\\"/>\"} as RegisteredIcon,\n {\"name\":\"ban\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M6 6l12 12\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"bar-chart\",\"body\":\"<path d=\\\"M4 4v16h16\\\"/><rect x=\\\"8\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"5\\\" rx=\\\"0.8\\\"/><rect x=\\\"12.5\\\" y=\\\"10.5\\\" width=\\\"3\\\" height=\\\"9\\\" rx=\\\"0.8\\\"/><rect x=\\\"17\\\" y=\\\"7.5\\\" width=\\\"3\\\" height=\\\"12\\\" rx=\\\"0.8\\\"/>\",\"solid\":true,\"categories\":[\"chart\"]} as RegisteredIcon,\n {\"name\":\"bell\",\"body\":\"<path d=\\\"M6.5 16.5V11a5.5 5.5 0 0 1 11 0v5.5l1.5 2H5z\\\"/><path d=\\\"M10 21a2 2 0 0 0 4 0\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"book\",\"body\":\"<path d=\\\"M6.5 3.5h11A1.5 1.5 0 0 1 19 5v14a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 5 19V5a1.5 1.5 0 0 1 1.5-1.5z\\\"/><path d=\\\"M9 3.5v17M12.5 8h3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"bookmark\",\"body\":\"<path d=\\\"M6.5 4.5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v16l-5.5-4-5.5 4z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"browser-setting\",\"body\":\"<rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"18\\\" height=\\\"15\\\" rx=\\\"2.5\\\"/><path d=\\\"M3 9h18\\\"/><path d=\\\"M11.02 11.58L11.21 10.48L12.79 10.48L12.98 11.58L13.78 12.04L14.82 11.66L15.61 13.03L14.76 13.73L14.76 14.67L15.61 15.37L14.82 16.74L13.78 16.36L12.98 16.82L12.79 17.92L11.21 17.92L11.02 16.82L10.22 16.36L9.18 16.74L8.39 15.37L9.24 14.67L9.24 13.73L8.39 13.03L9.18 11.66L10.22 12.04Z\\\"/><circle cx=\\\"12\\\" cy=\\\"14.2\\\" r=\\\"1\\\"/>\"} as RegisteredIcon,\n {\"name\":\"bug\",\"body\":\"<ellipse cx=\\\"12\\\" cy=\\\"13.5\\\" rx=\\\"4.5\\\" ry=\\\"6\\\"/><path d=\\\"M9.5 7.5a2.5 2.5 0 0 1 5 0M12 7.5v12M7.5 11H4M16.5 11H20M7.5 16H4.5M16.5 16h3M8 8L5.5 5.5M16 8l2.5-2.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"calendar\",\"body\":\"<rect x=\\\"4\\\" y=\\\"5.5\\\" width=\\\"16\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M4 10h16M8.5 3.5v4M15.5 3.5v4\\\"/>\",\"solid\":true,\"categories\":[\"foundation\",\"social\"],\"aliases\":[\"calendar-mini\"]} as RegisteredIcon,\n {\"name\":\"calendar-check\",\"body\":\"<rect x=\\\"4\\\" y=\\\"5.5\\\" width=\\\"16\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M4 10h16M8.5 3.5v4M15.5 3.5v4\\\"/><path d=\\\"M8.8 14.8l2.2 2.2 4.2-4.2\\\"/>\"} as RegisteredIcon,\n {\"name\":\"calendar-days\",\"body\":\"<rect x=\\\"4\\\" y=\\\"5.5\\\" width=\\\"16\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M4 10h16M8.5 3.5v4M15.5 3.5v4\\\"/><path d=\\\"M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01\\\"/>\"} as RegisteredIcon,\n {\"name\":\"chat-bubble\",\"body\":\"<path d=\\\"M12 4.5c4.7 0 8.5 3 8.5 7s-3.8 7-8.5 7c-1 0-1.9-.1-2.8-.4L5 20l1.2-3.6C4.6 15.3 3.5 13.7 3.5 11.5c0-4 3.8-7 8.5-7z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"check\",\"body\":\"<path d=\\\"M5 12.5l4.5 4.5L19 7.5\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"check-mini\"]} as RegisteredIcon,\n {\"name\":\"check-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M8 12.3l2.8 2.8 5.2-5.6\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"check-circle-mini\"]} as RegisteredIcon,\n {\"name\":\"circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"circle-empty\",\"body\":\"<path d=\\\"M20.46 12.8A8.5 8.5 0 0 1 19.51 15.98M17.42 18.55A8.5 8.5 0 0 1 14.5 20.12M11.2 20.46A8.5 8.5 0 0 1 8.02 19.51M5.45 17.42A8.5 8.5 0 0 1 3.88 14.5M3.54 11.2A8.5 8.5 0 0 1 4.49 8.02M6.58 5.45A8.5 8.5 0 0 1 9.5 3.88M12.8 3.54A8.5 8.5 0 0 1 15.98 4.49M18.55 6.58A8.5 8.5 0 0 1 20.12 9.5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"clipboard\",\"body\":\"<rect x=\\\"5\\\" y=\\\"5\\\" width=\\\"14\\\" height=\\\"16\\\" rx=\\\"2\\\"/><rect x=\\\"9\\\" y=\\\"3\\\" width=\\\"6\\\" height=\\\"4\\\" rx=\\\"1.2\\\"/><path d=\\\"M8.5 12h7M8.5 16h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"clock\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M12 7.5V12l3 2\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"code\",\"body\":\"<path d=\\\"M8.5 7l-5 5 5 5M15.5 7l5 5-5 5\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"cog\",\"body\":\"<path d=\\\"M9.73 5.91L10.23 3.69L13.77 3.69L14.27 5.91L16.14 6.99L18.32 6.31L20.08 9.37L18.41 10.92L18.41 13.08L20.08 14.63L18.32 17.69L16.14 17.01L14.27 18.09L13.77 20.31L10.23 20.31L9.73 18.09L7.86 17.01L5.68 17.69L3.92 14.63L5.59 13.08L5.59 10.92L3.92 9.37L5.68 6.31L7.86 6.99Z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"color-palette\",\"body\":\"<path d=\\\"M12 3.5a8.5 8.5 0 0 0 0 17c1.4 0 2-1 1.5-2.2-.5-1.2.2-2.3 1.6-2.3H17a3.5 3.5 0 0 0 3.5-3.5C20.5 7 16.8 3.5 12 3.5z\\\"/><path d=\\\"M7.8 11h.01\\\"/><path d=\\\"M10 7.5h.01\\\"/><path d=\\\"M14.5 7.5h.01\\\"/><path d=\\\"M8 15h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"comment-message\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M8 9.5h8M8 12.5h5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"computer\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"12\\\" height=\\\"9\\\" rx=\\\"1.5\\\"/><path d=\\\"M7 18h4M9 14v4\\\"/><rect x=\\\"17\\\" y=\\\"4.5\\\" width=\\\"4\\\" height=\\\"15\\\" rx=\\\"1.5\\\"/><path d=\\\"M19 16.5h.01\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"copy\",\"body\":\"<rect x=\\\"9\\\" y=\\\"7\\\" width=\\\"11\\\" height=\\\"13.5\\\" rx=\\\"2\\\"/><path d=\\\"M12 12h5M12 15.5h5M15 7V5.5a2 2 0 0 0-2-2H6.5a2 2 0 0 0-2 2V16a2 2 0 0 0 2 2H9\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"dashboard\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"7\\\" height=\\\"9\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"3.5\\\" width=\\\"7\\\" height=\\\"5\\\" rx=\\\"1.5\\\"/><rect x=\\\"3.5\\\" y=\\\"15.5\\\" width=\\\"7\\\" height=\\\"5\\\" rx=\\\"1.5\\\"/><rect x=\\\"13.5\\\" y=\\\"11.5\\\" width=\\\"7\\\" height=\\\"9\\\" rx=\\\"1.5\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"density-comfortable\",\"body\":\"<path d=\\\"M12 10V3.5M8.5 7L12 3.5 15.5 7M12 14v6.5M8.5 17l3.5 3.5 3.5-3.5\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"density-expand\",\"spacing-comfortable\"]} as RegisteredIcon,\n {\"name\":\"density-compact\",\"body\":\"<path d=\\\"M12 3v6.5M8.5 6l3.5 3.5L15.5 6M12 21v-6.5M8.5 18l3.5-3.5 3.5 3.5M6 12h12\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"density-collapse\",\"spacing-compact\"]} as RegisteredIcon,\n {\"name\":\"details\",\"body\":\"<path d=\\\"M5 7h.01\\\"/><path d=\\\"M5 12h.01\\\"/><path d=\\\"M5 17h.01\\\"/><path d=\\\"M9 7H20M9 12H20M9 17H20\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"devices\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"13\\\" height=\\\"9.5\\\" rx=\\\"1.5\\\"/><path d=\\\"M7 18.5h5M9.5 14.5v4\\\"/><rect x=\\\"17.5\\\" y=\\\"9\\\" width=\\\"3.5\\\" height=\\\"9\\\" rx=\\\"1.2\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"doc-list\",\"body\":\"<path d=\\\"M7.5 3.5h6l4.5 4.5v11.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19.5v-14A1.5 1.5 0 0 1 7.5 3.5z\\\"/><path d=\\\"M13.5 3.5V8H18\\\"/><path d=\\\"M9.5 12.5h.01\\\"/><path d=\\\"M9.5 15.5h.01\\\"/><path d=\\\"M9.5 18.5h.01\\\"/><path d=\\\"M12.5 12.5H15M12.5 15.5H15M12.5 18.5H15\\\"/>\"} as RegisteredIcon,\n {\"name\":\"download\",\"body\":\"<path d=\\\"M12 4v11M7.5 10.5l4.5 4.5 4.5-4.5M5 16v3.5h14V16\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"ellipsis-vertical\",\"body\":\"<path d=\\\"M12 5.5h.01\\\"/><path d=\\\"M12 12h.01\\\"/><path d=\\\"M12 18.5h.01\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"employee-group\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3\\\"/><path d=\\\"M3.5 19.5c.6-3.3 2.8-5 5.5-5s4.9 1.7 5.5 5\\\"/><path d=\\\"M15.5 5.3a3 3 0 0 1 0 5.4M17 14.8c1.9.6 3.1 2.2 3.5 4.7\\\"/>\",\"solid\":true,\"categories\":[\"commerce\"]} as RegisteredIcon,\n {\"name\":\"error-standard\",\"body\":\"<polygon points=\\\"15.44 3.69 20.31 8.56 20.31 15.44 15.44 20.31 8.56 20.31 3.69 15.44 3.69 8.56 8.56 3.69\\\"/><path d=\\\"M12 7.5v5.5\\\"/><path d=\\\"M12 16.5h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"error-mini\"]} as RegisteredIcon,\n {\"name\":\"exclamation-triangle\",\"body\":\"<path d=\\\"M12 4l9 15.5H3z\\\"/><path d=\\\"M12 10v4\\\"/><path d=\\\"M12 17h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"eye\",\"body\":\"<path d=\\\"M2.5 12C5 7.5 8.5 6 12 6s7 1.5 9.5 6c-2.5 4.5-6 6-9.5 6s-7-1.5-9.5-6z\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.8\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"file-text\",\"body\":\"<path d=\\\"M7.5 3.5h6l4.5 4.5v11.5a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 19.5v-14A1.5 1.5 0 0 1 7.5 3.5z\\\"/><path d=\\\"M13.5 3.5V8H18\\\"/><path d=\\\"M9.5 12h5M9.5 15h5M9.5 18h2.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"filter\",\"body\":\"<path d=\\\"M4 5.5h16l-6 7.5v6l-4-2V13z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"filter-close\",\"body\":\"<path d=\\\"M3.5 4.5h15l-5.5 6.5v5.5l-3.5-1.5V11z\\\"/><path d=\\\"M16 15.5l4.5 4.5M20.5 15.5L16 20\\\"/>\"} as RegisteredIcon,\n {\"name\":\"filter-grid\",\"body\":\"<path d=\\\"M4 4.5h16l-6 6.5v3l-4-1.5V11z\\\"/><path d=\\\"M7 19h.01\\\"/><path d=\\\"M12 19h.01\\\"/><path d=\\\"M17 19h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"filter-grid-mini\"]} as RegisteredIcon,\n {\"name\":\"flame\",\"body\":\"<path d=\\\"M12 3.5c.5 3.5 5.5 5.5 5.5 11a5.5 5.5 0 0 1-11 0c0-2 1-3.5 2-4.5.3 1.5 1 2.2 1.8 2.5C10 9 10.5 6 12 3.5z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"floppy\",\"body\":\"<path d=\\\"M5.5 3.5h10l5 5v10a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2z\\\"/><path d=\\\"M7.5 3.5v4h7v-4M7 20.5v-6h10v6\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"form\",\"body\":\"<rect x=\\\"4.5\\\" y=\\\"3.5\\\" width=\\\"15\\\" height=\\\"17\\\" rx=\\\"2.5\\\"/><path d=\\\"M8 8h5M8 15.5h3\\\"/><rect x=\\\"8\\\" y=\\\"10\\\" width=\\\"8\\\" height=\\\"3\\\" rx=\\\"1\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"grid\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"3.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"3.5\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"10\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"3.5\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"10\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/><rect x=\\\"16.5\\\" y=\\\"16.5\\\" width=\\\"4\\\" height=\\\"4\\\" rx=\\\"1\\\"/>\"} as RegisteredIcon,\n {\"name\":\"grid-layout\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"17\\\" height=\\\"17\\\" rx=\\\"2.5\\\"/><path d=\\\"M10 3.5v17M10 12h10.5\\\"/>\"} as RegisteredIcon,\n {\"name\":\"heart\",\"body\":\"<path d=\\\"M12 20s-7.5-4.6-7.5-10A4.3 4.3 0 0 1 12 7.3 4.3 4.3 0 0 1 19.5 10c0 5.4-7.5 10-7.5 10z\\\"/>\",\"solid\":true,\"categories\":[\"social\"],\"aliases\":[\"heart-fill\"]} as RegisteredIcon,\n {\"name\":\"help\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M9.5 9.7a2.5 2.5 0 1 1 3.5 2.3c-.7.4-1 .9-1 1.7M12 16.8h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"history\",\"body\":\"<path d=\\\"M4 12a8 8 0 1 0 2.4-5.7M4.5 3.5v3.8h3.8M12 8v4l2.5 2\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"home\",\"body\":\"<path d=\\\"M4 11l8-6.5 8 6.5M6 9.8v9.7h12V9.8M10 19.5v-5h4v5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"hourglass\",\"body\":\"<path d=\\\"M7 3.5h10M7 20.5h10M8 3.5c0 4 4 5 4 8.5s-4 4.5-4 8.5M16 3.5c0 4-4 5-4 8.5s4 4.5 4 8.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"inbox\",\"body\":\"<path d=\\\"M3.5 13.5l2.5-8h12l2.5 8v4.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z\\\"/><path d=\\\"M3.5 13.5h5l1 2.5h5l1-2.5h5\\\"/>\",\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"info-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><path d=\\\"M12 11.2v5\\\"/><path d=\\\"M12 8h.01\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"],\"aliases\":[\"info-circle-mini\"]} as RegisteredIcon,\n {\"name\":\"key\",\"body\":\"<circle cx=\\\"7.5\\\" cy=\\\"16.5\\\" r=\\\"3.5\\\"/><path d=\\\"M10 14L20 4M16 8l2.5 2.5M13.5 10.5l2 2\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"keyboard\",\"body\":\"<rect x=\\\"2.5\\\" y=\\\"6\\\" width=\\\"19\\\" height=\\\"12\\\" rx=\\\"2.5\\\"/><path d=\\\"M6.5 10h.01M10.5 10h.01M14.5 10h.01M17.5 10h.01M8 14.5h8\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"language\",\"body\":\"<path d=\\\"M4 6h9M8.5 4v2M6 6c.5 3 2.5 5.5 5.5 7M11 6c-.5 3-2.5 5.5-6 7\\\"/><path d=\\\"M12 20l4.5-10 4.5 10M13.5 17h6\\\"/>\",\"solid\":true,\"categories\":[\"text-edit\"]} as RegisteredIcon,\n {\"name\":\"layers\",\"body\":\"<path d=\\\"M12 3.5l8.5 4-8.5 4-8.5-4z\\\"/><path d=\\\"M3.5 12.5l8.5 4 8.5-4M3.5 16.5l8.5 4 8.5-4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"lightbulb\",\"body\":\"<path d=\\\"M9 16.5v-1.8C7.3 13.5 6.5 11.9 6.5 10a5.5 5.5 0 0 1 11 0c0 1.9-.8 3.5-2.5 4.7v1.8z\\\"/><path d=\\\"M9.5 19.5h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"link\",\"body\":\"<g transform=\\\"rotate(-45 12 12)\\\"><path d=\\\"M9 8.5H7a3.5 3.5 0 0 0 0 7h2\\\"/><path d=\\\"M15 8.5h2a3.5 3.5 0 0 1 0 7h-2\\\"/><path d=\\\"M9.5 12h5\\\"/></g>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"list\",\"body\":\"<path d=\\\"M4 6h16M4 12h16M4 18h10\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"list-check\",\"body\":\"<path d=\\\"M11 6h9M11 12h9M11 18h9\\\"/><path d=\\\"M3.5 6.2l1.4 1.4 2.8-3M3.5 12.2l1.4 1.4 2.8-3M3.5 18.2l1.4 1.4 2.8-3\\\"/>\"} as RegisteredIcon,\n {\"name\":\"lock-close\",\"body\":\"<rect x=\\\"6\\\" y=\\\"10.5\\\" width=\\\"12\\\" height=\\\"9.5\\\" rx=\\\"2.5\\\"/><path d=\\\"M8.5 10.5V7.5a3.5 3.5 0 0 1 7 0v3\\\"/><circle cx=\\\"12\\\" cy=\\\"14.2\\\" r=\\\"1.4\\\"/><path d=\\\"M12 15.6v1.8\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"login\",\"body\":\"<path d=\\\"M14 4.5h4a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-4\\\"/><path d=\\\"M3.5 12L14 12M10.82 15.18L14 12L10.82 8.82\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"logout\",\"body\":\"<path d=\\\"M10 4.5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h4\\\"/><path d=\\\"M10 12L20.5 12M17.32 15.18L20.5 12L17.32 8.82\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"magnifying-glass\",\"body\":\"<circle cx=\\\"9.5\\\" cy=\\\"9.5\\\" r=\\\"5.5\\\"/><path d=\\\"M13.8 13.8L20 20\\\"/><path d=\\\"M6.8 9a2.8 2.8 0 0 1 2.7-2.7\\\"/>\"} as RegisteredIcon,\n {\"name\":\"mail\",\"body\":\"<rect x=\\\"3\\\" y=\\\"5.5\\\" width=\\\"18\\\" height=\\\"13\\\" rx=\\\"2.5\\\"/><path d=\\\"M3.5 8l8.5 6 8.5-6\\\"/>\"} as RegisteredIcon,\n {\"name\":\"menu\",\"body\":\"<path d=\\\"M4 6.5h16M4 12h16M4 17.5h16\\\"/>\"} as RegisteredIcon,\n {\"name\":\"minus\",\"body\":\"<path d=\\\"M5 12h14\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"mobile\",\"body\":\"<rect x=\\\"7\\\" y=\\\"2.5\\\" width=\\\"10\\\" height=\\\"19\\\" rx=\\\"2.5\\\"/><path d=\\\"M10.5 18.5h3\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"moon\",\"body\":\"<path d=\\\"M19.5 14.5A8 8 0 1 1 9.5 4.5a6.5 6.5 0 0 0 10 10z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"new\",\"body\":\"<path d=\\\"M12 3.5c.5 4.5 2.5 6.5 8 8.5-5.5 2-7.5 4-8 8.5-.5-4.5-2.5-6.5-8-8.5 5.5-2 7.5-4 8-8.5z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"node\",\"body\":\"<polygon points=\\\"12 3.5 19.36 7.75 19.36 16.25 12 20.5 4.64 16.25 4.64 7.75\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"nodes\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"5\\\" r=\\\"2\\\"/><circle cx=\\\"5.5\\\" cy=\\\"19\\\" r=\\\"2\\\"/><circle cx=\\\"18.5\\\" cy=\\\"19\\\" r=\\\"2\\\"/><path d=\\\"M11 6.8L6.5 17.2M13 6.8l4.5 10.4M7.5 19h9\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"note\",\"body\":\"<path d=\\\"M5 4.5h14v10l-5 5H5z\\\"/><path d=\\\"M19 14.5h-5v5\\\"/><path d=\\\"M8 9h8M8 12.5h5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"pencil\",\"body\":\"<path d=\\\"M4.5 19.5l.8-4.3L16 4.5a2 2 0 0 1 2.8 0l.7.7a2 2 0 0 1 0 2.8L8.8 18.7z\\\"/><path d=\\\"M13.5 7l3.5 3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"play\",\"body\":\"<polygon points=\\\"8 5.5 18.5 12 8 18.5\\\"/>\",\"solid\":true,\"categories\":[\"media\"]} as RegisteredIcon,\n {\"name\":\"plugin\",\"body\":\"<path d=\\\"M6.5 8h11v3a5.5 5.5 0 0 1-11 0z\\\"/><path d=\\\"M9.5 3.5V8M14.5 3.5V8\\\"/><path d=\\\"M12 16.5v4\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"plus\",\"body\":\"<path d=\\\"M12 5v14M5 12h14\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"pop-out\",\"body\":\"<path d=\\\"M10 5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-4\\\"/><path d=\\\"M14 4h6v6M20 4l-9 9\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"refresh\",\"body\":\"<path d=\\\"M18.5 8.25A7.5 7.5 0 1 1 10.06 4.76\\\"/><path d=\\\"M7.54 7.86L10.06 4.76L6.32 3.32\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"resize\",\"body\":\"<path d=\\\"M14 4h6v6M20 4l-6.5 6.5\\\"/><path d=\\\"M10 20H4v-6M4 20l6.5-6.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"rocket-diagonal\",\"body\":\"<g transform=\\\"rotate(45 12 12)\\\"><path d=\\\"M12 2.8c3 2.5 4 6 4 9.7l-1 3H9l-1-3c0-3.7 1-7.2 4-9.7z\\\"/><circle cx=\\\"12\\\" cy=\\\"9.5\\\" r=\\\"1.6\\\"/><path d=\\\"M8 12.5l-2.5 3 2.5.5M16 12.5l2.5 3-2.5.5\\\"/><path d=\\\"M10.5 18.5L12 21l1.5-2.5\\\"/></g>\"} as RegisteredIcon,\n {\"name\":\"scroll\",\"body\":\"<path d=\\\"M7 4.5h11.5v13a3 3 0 0 1-3 3H6.5a3 3 0 0 0 3-3V7A2.5 2.5 0 0 0 7 4.5z\\\"/><path d=\\\"M12.5 9h3.5M12.5 12.5h3.5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"search\",\"body\":\"<circle cx=\\\"10.5\\\" cy=\\\"10.5\\\" r=\\\"6.5\\\"/><path d=\\\"M15.5 15.5l5 5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"search-magnify\",\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"7\\\"/><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"2.5\\\"/><path d=\\\"M15 15l5.5 5.5\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"shield\",\"body\":\"<path d=\\\"M12 3.5l7 2.5v5.5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\\\"/>\",\"solid\":true,\"categories\":[\"technology\"],\"aliases\":[\"empty-shield\"]} as RegisteredIcon,\n {\"name\":\"shield-check\",\"body\":\"<path d=\\\"M12 3.5l7 2.5v5.5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z\\\"/><path d=\\\"M9 12l2.2 2.2L15.5 10\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"shrink\",\"body\":\"<path d=\\\"M20 10h-6V4M14 10l6.5-6.5\\\"/><path d=\\\"M4 14h6v6M10 14l-6.5 6.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"sms\",\"body\":\"<path d=\\\"M5.5 4.5h13A2.5 2.5 0 0 1 21 7v8a2.5 2.5 0 0 1-2.5 2.5H12L7.5 21v-3.5h-2A2.5 2.5 0 0 1 3 15V7a2.5 2.5 0 0 1 2.5-2.5z\\\"/><path d=\\\"M8 11h.01\\\"/><path d=\\\"M12 11h.01\\\"/><path d=\\\"M16 11h.01\\\"/>\"} as RegisteredIcon,\n {\"name\":\"sort-vertical\",\"body\":\"<path d=\\\"M12 4v16M8.500 7.500L12 4l3.500 3.500M8.500 16.500L12 20l3.500-3.500\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"star\",\"body\":\"<polygon points=\\\"12 3.5 14.3 8.84 20.08 9.37 15.72 13.21 17 18.88 12 15.91 7 18.88 8.28 13.21 3.92 9.37 9.7 8.84\\\"/>\",\"solid\":true,\"categories\":[\"social\"],\"aliases\":[\"star-fill\",\"empty-star\",\"full-star\"]} as RegisteredIcon,\n {\"name\":\"sun\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"4\\\"/><path d=\\\"M19.00 12.00L21.00 12.00M16.95 16.95L18.36 18.36M12.00 19.00L12.00 21.00M7.05 16.95L5.64 18.36M5.00 12.00L3.00 12.00M7.05 7.05L5.64 5.64M12.00 5.00L12.00 3.00M16.95 7.05L18.36 5.64\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"table\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"5\\\" width=\\\"17\\\" height=\\\"14\\\" rx=\\\"2.5\\\"/><path d=\\\"M3.500 10h17M3.500 14.500h17M10 10v9\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"tag\",\"body\":\"<path d=\\\"M3.5 12.5V5.5a2 2 0 0 1 2-2h7l8 8a2 2 0 0 1 0 2.8l-6.2 6.2a2 2 0 0 1-2.8 0z\\\"/><path d=\\\"M8 8h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"target\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"4.5\\\"/><path d=\\\"M12 12h.01\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"tasks\",\"body\":\"<path d=\\\"M4 6.500l1.500 1.500L8 5.500M4 12.500L5.500 14 8 11.500M4 18.500L5.500 20 8 17.500M11 7h9M11 13h9M11 19h9\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"text\",\"body\":\"<path d=\\\"M5 6.5V4.5h14v2M12 4.5v15M9.5 19.5h5\\\"/>\",\"categories\":[\"text-edit\"]} as RegisteredIcon,\n {\"name\":\"thumbs-up\",\"body\":\"<rect x=\\\"4\\\" y=\\\"11\\\" width=\\\"4\\\" height=\\\"9\\\" rx=\\\"1\\\"/><path d=\\\"M8 11l3-6.5a2 2 0 0 1 3 1.8L13.5 10H18a2 2 0 0 1 2 2.3l-1 5.7a2 2 0 0 1-2 1.7H8z\\\"/>\",\"solid\":true,\"categories\":[\"social\"]} as RegisteredIcon,\n {\"name\":\"timeline\",\"body\":\"<circle cx=\\\"5.5\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><circle cx=\\\"18.5\\\" cy=\\\"12\\\" r=\\\"2.2\\\"/><path d=\\\"M7.7 12h2.1M14.2 12h2.1M12 9.8V5M5.5 14.2V19M18.5 14.2V19\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"times\",\"body\":\"<path d=\\\"M5.5 5.5l13 13M18.5 5.5l-13 13\\\"/>\",\"categories\":[\"foundation\"],\"aliases\":[\"times-mini\"]} as RegisteredIcon,\n {\"name\":\"tools\",\"body\":\"<path d=\\\"M14.5 4a4.5 4.5 0 0 0-4.2 6L4 16.3a1.9 1.9 0 0 0 2.7 2.7L13 12.7a4.5 4.5 0 0 0 6.2-4.4L16.5 11l-2.7-.7-.8-2.8z\\\"/><path d=\\\"M4 4l4.4 4.4\\\"/><path d=\\\"M16.71 14.59l3.2 3.2a1.5 1.5 0 0 1-2.12 2.12l-3.2-3.2a1.5 1.5 0 0 1 2.12-2.12z\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"trash\",\"body\":\"<path d=\\\"M5 7h14\\\"/><path d=\\\"M9 7V5h6v2\\\"/><path d=\\\"M7 7l.8 12.5h8.4L17 7z\\\"/><path d=\\\"M10.5 11v5M13.5 11v5\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"tree-view\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"7\\\" height=\\\"4\\\" rx=\\\"1.2\\\"/><rect x=\\\"12\\\" y=\\\"10\\\" width=\\\"8.5\\\" height=\\\"3.5\\\" rx=\\\"1\\\"/><rect x=\\\"12\\\" y=\\\"16\\\" width=\\\"8.5\\\" height=\\\"3.5\\\" rx=\\\"1\\\"/><path d=\\\"M6 7.5v10.25h6M6 11.75h6\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"two-way-arrows\",\"body\":\"<path d=\\\"M4 8h16M16.5 4.5L20 8l-3.5 3.5M20 16H4M7.5 12.5L4 16l3.5 3.5\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"unarchive\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4.5\\\" width=\\\"17\\\" height=\\\"4\\\" rx=\\\"1\\\"/><path d=\\\"M5.5 8.5V18a1.5 1.5 0 0 0 1.5 1.5h10a1.5 1.5 0 0 0 1.5-1.5V8.5\\\"/><path d=\\\"M12 17v-6M9.5 13l2.5-2.5 2.5 2.5\\\"/>\",\"solid\":true,\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"undo\",\"body\":\"<path d=\\\"M8.5 5L4.5 9l4 4\\\"/><path d=\\\"M4.5 9h9a5.5 5.5 0 0 1 0 11H10\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"unlink\",\"body\":\"<g transform=\\\"rotate(-45 12 12)\\\"><path d=\\\"M9 8.5H7a3.5 3.5 0 0 0 0 7h2\\\"/><path d=\\\"M15 8.5h2a3.5 3.5 0 0 1 0 7h-2\\\"/></g><path d=\\\"M8.5 3.5V6M3.5 8.5H6M15.5 20.5V18M20.5 15.5H18\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"update\",\"body\":\"<path d=\\\"M19.5 11a7.5 7.5 0 0 0-13-4L4.5 9M4.5 5v4h4\\\"/><path d=\\\"M4.5 13a7.5 7.5 0 0 0 13 4l2-2M19.5 19v-4h-4\\\"/>\",\"categories\":[\"technology\"]} as RegisteredIcon,\n {\"name\":\"user\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M5 20c.8-3.6 3.8-5.5 7-5.5s6.2 1.9 7 5.5\\\"/>\",\"solid\":true,\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"user-checkmark\",\"body\":\"<circle cx=\\\"8.5\\\" cy=\\\"8\\\" r=\\\"3\\\"/><path d=\\\"M2.5 19.5c.6-3.2 2.8-5 6-5s5.4 1.8 6 5\\\"/><path d=\\\"M15 17.2l2.5 2.5 4.2-4.7\\\"/>\"} as RegisteredIcon,\n {\"name\":\"user-circle\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"9\\\"/><circle cx=\\\"12\\\" cy=\\\"10\\\" r=\\\"3\\\"/><path d=\\\"M6.5 18.2c1-2.2 3-3.4 5.5-3.4s4.5 1.2 5.5 3.4\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"user-plus\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M2.5 20c.7-3.4 3.3-5.5 6.5-5.5s5.2 1.4 6 3.5\\\"/><path d=\\\"M18 11v6M15 14h6\\\"/>\",\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"users\",\"body\":\"<circle cx=\\\"9\\\" cy=\\\"8\\\" r=\\\"3.5\\\"/><path d=\\\"M2.5 20c.7-3.4 3.3-5.5 6.5-5.5s5.8 2.1 6.5 5.5\\\"/><path d=\\\"M15.5 4.8a3.3 3.3 0 0 1 0 6.4M17.5 14.7c2 .5 3.3 2.3 4 5.3\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n {\"name\":\"view-columns\",\"body\":\"<rect x=\\\"3.5\\\" y=\\\"4\\\" width=\\\"17\\\" height=\\\"16\\\" rx=\\\"2.5\\\"/><path d=\\\"M9.2 4v16M14.8 4v16\\\"/>\",\"categories\":[\"foundation\"]} as RegisteredIcon,\n {\"name\":\"world\",\"body\":\"<circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"8.5\\\"/><ellipse cx=\\\"12\\\" cy=\\\"12\\\" rx=\\\"3.5\\\" ry=\\\"8.5\\\"/><path d=\\\"M3.5 12h17\\\"/>\",\"solid\":true,\"categories\":[\"essential\"]} as RegisteredIcon,\n];\n","import { DOCUMENT } from '@angular/common';\nimport { EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer } from '@angular/core';\nimport {\n HERMES_SIDEBAR_CONFIG,\n HERMES_THEME_CONFIG,\n HERMES_WORKSPACE_PERSISTENCE_CONFIG,\n provideHermesIconLoader,\n provideHermesIcons,\n} from '@trismegisto/angular';\nimport { DEFAULT_THEME_CONFIG, extendThemeConfig } from '@trismegisto/primitives';\nimport { ThemeService } from './theme.service';\nimport { SPINE_CONFIG, SpineConfig } from './app-config.token';\nimport { applySpineFavicon } from './brand';\nimport { SPINE_ICONS } from './icons.generated';\n\n/**\n * Bootstrap do spine: tema, favicon, prefixo de armazenamento do app e ícones.\n *\n * Ícones (desde a 3.3.1): registra no bootstrap só `SPINE_ICONS` — os que o próprio spine desenha (header,\n * menu, configurações, auto-serviço...; gerado por `scripts/generate-spine-icons.mjs`) — e pede o catálogo\n * inteiro sob demanda (`provideHermesIconLoader`), num chunk à parte baixado logo depois do bootstrap. Assim o\n * bundle inicial não leva os ~900 desenhos (~212 kB), e um ícone que o APP usa sem registrar (o ícone da rota que\n * vem do servidor, um `[icon]` de botão) continua aparecendo: até o chunk chegar desenha o genérico, e o\n * `hm-icon` redesenha sozinho. App que registra os próprios ícones (`provideHermesIcons(...)`) não muda nada.\n */\nexport function provideUi(config?: SpineConfig): EnvironmentProviders {\n // Apps diferentes moram na MESMA origem (mesmo domínio, caminhos distintos): sem prefixo próprio,\n // tema, família, densidade, menu lateral e abas de um app vazam pro outro. Cada app usa o seu\n // `clientId` como prefixo de TODAS as chaves de armazenamento.\n const ns = config?.clientId ? `hermes_${config.clientId}` : null;\n // Famílias do app (`config.theme`) compostas sobre as padrão, já com o prefixo do app.\n const themeConfig =\n ns || config?.theme\n ? extendThemeConfig({ ...DEFAULT_THEME_CONFIG, storagePrefix: ns ?? DEFAULT_THEME_CONFIG.storagePrefix }, config?.theme)\n : null;\n return makeEnvironmentProviders([\n provideHermesIcons(SPINE_ICONS),\n provideHermesIconLoader(() => import('@trismegisto/icons/catalog').then((m) => m.HERMES_ICONS)),\n provideAppInitializer(() => {\n inject(ThemeService);\n // Favicon só quando configurado: sem `favicon`, o `<link rel=\"icon\">` do index.html fica como está.\n if (config?.favicon) applySpineFavicon(inject(DOCUMENT), config.favicon);\n }),\n ...(config ? [{ provide: SPINE_CONFIG, useValue: config }] : []),\n ...(themeConfig ? [{ provide: HERMES_THEME_CONFIG, useValue: themeConfig }] : []),\n ...(ns\n ? [\n { provide: HERMES_SIDEBAR_CONFIG, useValue: { storageKey: `${ns}_sidebar` } },\n { provide: HERMES_WORKSPACE_PERSISTENCE_CONFIG, useValue: { storagePrefix: ns } },\n ]\n : []),\n ]);\n}\n","import { InjectionToken } from '@angular/core';\n\n/** Dados do `package.json` do app (nome, versão, dependências...), passados em\n * `provideShell({ packageInfo })`. Mora no pacote raiz (e não em `@trismegisto/spine/shell`, onde\n * nasceu) porque o painel de configurações do `@trismegisto/spine/layout` também lê — e o shell\n * importa o layout, então o layout importar o shell fecharia um ciclo. O shell reexporta o\n * MESMO token (mesma instância), então quem importava de lá continua funcionando. */\nexport interface PackageInfo {\n name?: string;\n version?: string;\n description?: string;\n license?: string;\n buildDate?: string;\n environment?: string;\n repository?: { url?: string };\n developer?: { name?: string; homepage?: string; email?: string };\n docs?: string;\n issues?: string;\n dependencies?: Record<string, string>;\n [key: string]: any;\n}\n\nexport const APP_PACKAGE_INFO = new InjectionToken<PackageInfo>('APP_PACKAGE_INFO');\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, NgZone, PLATFORM_ID, computed, effect, inject, signal, untracked } from '@angular/core';\nimport { SPINE_CONFIG } from './app-config.token';\nimport { HermesI18nService, HermesMotionService, HermesShortcutService, HermesZoomService } from '@trismegisto/angular';\nimport { HermesMotionPreference, TimeHourCycle, Weekday, normalizeMotionPreference, normalizeTextScale } from '@trismegisto/primitives';\n\n/** Chaves por app (prefixo = `clientId`, mesmo do tema): apps diferentes na mesma origem não\n * compartilham preferências. Sem `SPINE_CONFIG`, cai no prefixo genérico `hermes`. */\nconst TIME_ZONE_SUFFIX = 'time_zone';\nconst LANGUAGE_SUFFIX = 'language';\nconst CHARACTER_KEYS_SUFFIX = 'shortcut_character_keys';\nconst TEXT_SCALE_SUFFIX = 'text_scale';\nconst MOTION_SUFFIX = 'motion';\nconst HOUR_CYCLE_SUFFIX = 'hour_cycle';\nconst WEEK_START_SUFFIX = 'week_start';\nconst IDLE_SUFFIX = 'idle_minutes';\nconst START_PAGE_SUFFIX = 'start_page';\nconst NOTICES_SUFFIX = 'notices';\nconst BROWSER_NOTICES_SUFFIX = 'browser_notices';\nconst SPLIT_TABS_SUFFIX = 'split_tabs';\n\n/** Minutos de inatividade oferecidos em \"Encerrar por inatividade\" (0 = nunca). */\nexport const SPINE_IDLE_OPTIONS: readonly number[] = [0, 5, 15, 30, 60];\n\n/**\n * Tela inicial depois do login: `home` (a padrão do app), `last` (a última visitada) ou `fav:<id>` (um favorito,\n * pelo `id` do `SpineQuickAccessService`).\n */\nexport type SpineStartPagePreference = 'home' | 'last' | `fav:${string}`;\n\n/** Relógio escolhido em Região: vazio = o do idioma. */\nexport type SpineHourCyclePreference = '' | TimeHourCycle;\n/** Primeiro dia da semana escolhido em Região: `null` = o do idioma. */\nexport type SpineWeekStartPreference = Weekday | null;\nconst CHANNEL_BASE = 'spine_preferences';\n\n/**\n * Preferências do usuário que não são de tema (tema/família/densidade continuam no\n * `HermesThemeService`; modo do menu lateral no `HermesSidebarService`): fuso horário, idioma, relógio de\n * 12/24 h e primeiro dia da semana (`HermesI18nService.setRegionalFormat`), tamanho do texto\n * (`HermesZoomService.setTextScale`), movimento (`HermesMotionService.setPreference`) e o interruptor dos\n * atalhos de tecla única (WCAG 2.1.4) do `HermesShortcutService`.\n *\n * Guarda ainda se a área de abas pode ser dividida em painéis (`splitTabs`, desligado por padrão).\n *\n * Também guarda as preferências dos recursos opcionais (`SpineFeatures`): minutos de inatividade, tela inicial,\n * tipos de aviso ligados e o aviso do navegador.\n *\n * Vive no navegador (localStorage, sincronizado entre abas). Com `SpineFeatures.accountPreferences`, o\n * `SpineAccountPreferencesService` (`@trismegisto/spine/layout`) espelha estes valores na conta do Argos e os aplica\n * pelos mesmos `set*` no login: quem lê `timeZone()` não precisa saber de onde o valor veio.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpinePreferencesService {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly zone = inject(NgZone);\n private readonly ns = inject(SPINE_CONFIG, { optional: true })?.clientId;\n private readonly timeZoneKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${TIME_ZONE_SUFFIX}`;\n private readonly languageKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${LANGUAGE_SUFFIX}`;\n private readonly characterKeysKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${CHARACTER_KEYS_SUFFIX}`;\n private readonly textScaleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${TEXT_SCALE_SUFFIX}`;\n private readonly motionKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${MOTION_SUFFIX}`;\n private readonly hourCycleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${HOUR_CYCLE_SUFFIX}`;\n private readonly weekStartKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${WEEK_START_SUFFIX}`;\n private readonly shortcuts = inject(HermesShortcutService);\n private readonly i18n = inject(HermesI18nService);\n private readonly zoom = inject(HermesZoomService);\n private readonly motionService = inject(HermesMotionService);\n /** Idioma com que o app subiu (`provideHermesI18n`) — vale quando a pessoa não escolheu nenhum. */\n readonly appLanguage = this.i18n.locale();\n private readonly channel: BroadcastChannel | null = this.browser && typeof BroadcastChannel !== 'undefined'\n ? new BroadcastChannel(this.ns ? `${CHANNEL_BASE}_${this.ns}` : CHANNEL_BASE)\n : null;\n\n /** Fuso escolhido (IANA, ex.: \"America/Sao_Paulo\"). Vazio = o do navegador. */\n readonly timeZone = signal(this.read(this.timeZoneKey));\n\n /** Fuso do navegador, para mostrar ao lado da opção \"automático\". */\n readonly browserTimeZone = this.browser ? Intl.DateTimeFormat().resolvedOptions().timeZone : 'UTC';\n\n /** O fuso que vale de fato: o escolhido ou, sem escolha, o do navegador. */\n readonly effectiveTimeZone = computed(() => this.timeZone() || this.browserTimeZone);\n\n /** Idioma escolhido (BCP 47: `pt-BR`, `en`, `es`). Vazio = o padrão do app. */\n readonly language = signal(this.read(this.languageKey));\n\n /**\n * Atalhos de tecla única (`?`, `G H`) ligados — WCAG 2.1.4. Guardado por app (`'on'`/`'off'`);\n * sem escolha salva, vale o padrão do `HermesShortcutService` (`provideHermesShortcuts`).\n */\n readonly characterKeys = signal(this.readCharacterKeys());\n\n /** Tamanho do texto (1 = 100%; os oferecidos em `HERMES_TEXT_SCALES`). */\n readonly textScale = signal(normalizeTextScale(this.read(this.textScaleKey)));\n\n /** Movimento: `system` segue o `prefers-reduced-motion`; `reduce` sempre reduz; `full` nunca. */\n readonly motion = signal<HermesMotionPreference>(normalizeMotionPreference(this.read(this.motionKey)));\n\n /** Relógio: `h23` (24 horas), `h12` (12 horas) ou vazio (o do idioma). */\n readonly hourCycle = signal<SpineHourCyclePreference>(toHourCycle(this.read(this.hourCycleKey)));\n\n /** Primeiro dia da semana (0 = domingo, 1 = segunda) ou `null` (o do idioma). */\n readonly weekStart = signal<SpineWeekStartPreference>(toWeekStart(this.read(this.weekStartKey)));\n\n private readonly idleKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${IDLE_SUFFIX}`;\n private readonly startPageKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${START_PAGE_SUFFIX}`;\n private readonly noticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${NOTICES_SUFFIX}`;\n private readonly browserNoticesKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${BROWSER_NOTICES_SUFFIX}`;\n private readonly splitTabsKey = `${this.ns ? `hermes_${this.ns}` : 'hermes'}_${SPLIT_TABS_SUFFIX}`;\n\n /** Encerrar a sessão depois de tantos minutos sem uso (0 = nunca). Os limites do app (`SpineFeatures.idleTimeout`)\n * são aplicados por quem usa o valor (`SpineIdleService`), não aqui. */\n readonly idleMinutes = signal(toIdleMinutes(this.read(this.idleKey)));\n\n /** Tela que abre depois do login. */\n readonly startPage = signal<SpineStartPagePreference>(toStartPage(this.read(this.startPageKey)));\n\n /** Tipos de aviso que a pessoa ligou/desligou (`id` → ligado); tipo ausente segue o `defaultEnabled` dele. */\n readonly noticeTypes = signal<Readonly<Record<string, boolean>>>(toNoticeTypes(this.read(this.noticesKey)));\n\n /** Aviso do navegador (Notification API) quando a aba está em segundo plano. */\n readonly browserNotices = signal(this.read(this.browserNoticesKey) === 'on');\n\n /** Dividir a área de abas em painéis (lado a lado ou empilhados). Padrão: desligado, um painel só. */\n readonly splitTabs = signal(this.read(this.splitTabsKey) === 'on');\n\n /** Idiomas oferecidos na configuração, cada um com o nome no próprio idioma (padrão de mercado). */\n readonly languages: readonly { readonly value: string; readonly label: string }[] = [\n // check-strings: off — cada idioma escrito no próprio idioma (padrão de mercado), igual em todo catálogo.\n { value: 'pt-BR', label: 'Português (Brasil)' },\n { value: 'en', label: 'English' },\n { value: 'es', label: 'Español' },\n // check-strings: on\n ];\n\n constructor() {\n if (this.channel) {\n this.channel.onmessage = (e) => this.zone.run(() => {\n if (e.data?.type === 'TIME_ZONE_CHANGED') this.timeZone.set(e.data.value ?? '');\n if (e.data?.type === 'LANGUAGE_CHANGED') this.applyLanguage(e.data.value ?? '');\n if (e.data?.type === 'CHARACTER_KEYS_CHANGED') this.applyCharacterKeys(e.data.value !== false);\n if (e.data?.type === 'TEXT_SCALE_CHANGED') this.applyTextScale(normalizeTextScale(e.data.value));\n if (e.data?.type === 'MOTION_CHANGED') this.applyMotion(normalizeMotionPreference(e.data.value));\n if (e.data?.type === 'HOUR_CYCLE_CHANGED') this.applyRegionalFormat(toHourCycle(e.data.value), this.weekStart());\n if (e.data?.type === 'WEEK_START_CHANGED') this.applyRegionalFormat(this.hourCycle(), toWeekStart(e.data.value));\n if (e.data?.type === 'IDLE_CHANGED') this.idleMinutes.set(toIdleMinutes(e.data.value));\n if (e.data?.type === 'START_PAGE_CHANGED') this.startPage.set(toStartPage(e.data.value));\n if (e.data?.type === 'NOTICES_CHANGED') this.noticeTypes.set(toNoticeTypes(JSON.stringify(e.data.value ?? {})));\n if (e.data?.type === 'BROWSER_NOTICES_CHANGED') this.browserNotices.set(e.data.value === true);\n if (e.data?.type === 'SPLIT_TABS_CHANGED') this.splitTabs.set(e.data.value === true);\n });\n }\n // Escolha salva vale desde a primeira tela (o layout injeta este serviço no boot).\n if (this.language()) this.i18n.setLocale(this.language());\n if (this.textScale() !== 1) this.zoom.setTextScale(this.textScale());\n if (this.motion() !== 'system') this.motionService.setPreference(this.motion());\n if (this.hourCycle() || this.weekStart() !== null) this.applyRegionalFormat(this.hourCycle(), this.weekStart());\n if (this.characterKeys() !== this.shortcuts.characterKeys()) this.shortcuts.setCharacterKeys(this.characterKeys());\n // O interruptor do hm-shortcut-list fala direto com o HermesShortcutService: a mudança que vier\n // de lá (e não deste serviço) é guardada e avisada às outras abas aqui.\n effect(() => {\n const enabled = this.shortcuts.characterKeys();\n if (enabled !== untracked(this.characterKeys)) this.saveCharacterKeys(enabled);\n });\n }\n\n /** Liga/desliga os atalhos de tecla única na hora, guarda e avisa as outras abas. */\n setCharacterKeys(enabled: boolean): void {\n this.shortcuts.setCharacterKeys(enabled);\n this.saveCharacterKeys(enabled);\n }\n\n private saveCharacterKeys(enabled: boolean): void {\n this.characterKeys.set(enabled);\n this.write(this.characterKeysKey, enabled ? 'on' : 'off');\n this.channel?.postMessage({ type: 'CHARACTER_KEYS_CHANGED', value: enabled });\n }\n\n private applyCharacterKeys(enabled: boolean): void {\n this.characterKeys.set(enabled);\n this.shortcuts.setCharacterKeys(enabled);\n }\n\n private readCharacterKeys(): boolean {\n const saved = this.read(this.characterKeysKey);\n return saved ? saved !== 'off' : this.shortcuts.characterKeys();\n }\n\n /** Troca o idioma da lib e do spine na hora, guarda e avisa as outras abas. Vazio = padrão do app. */\n setLanguage(value: string): void {\n this.applyLanguage(value);\n this.write(this.languageKey, value);\n this.channel?.postMessage({ type: 'LANGUAGE_CHANGED', value });\n }\n\n private applyLanguage(value: string): void {\n this.language.set(value);\n this.i18n.setLocale(value || this.appLanguage);\n }\n\n /** Tamanho do texto na hora (1 = 100%), guarda e avisa as outras abas. */\n setTextScale(value: number): void {\n const scale = normalizeTextScale(value);\n this.applyTextScale(scale);\n this.write(this.textScaleKey, scale === 1 ? '' : String(scale));\n this.channel?.postMessage({ type: 'TEXT_SCALE_CHANGED', value: scale });\n }\n\n private applyTextScale(scale: number): void {\n this.textScale.set(scale);\n this.zoom.setTextScale(scale);\n }\n\n /** Movimento na hora (`system`/`reduce`/`full`), guarda e avisa as outras abas. */\n setMotion(value: HermesMotionPreference): void {\n const motion = normalizeMotionPreference(value);\n this.applyMotion(motion);\n this.write(this.motionKey, motion === 'system' ? '' : motion);\n this.channel?.postMessage({ type: 'MOTION_CHANGED', value: motion });\n }\n\n private applyMotion(motion: HermesMotionPreference): void {\n this.motion.set(motion);\n this.motionService.setPreference(motion);\n }\n\n /** Relógio na hora (`h23`/`h12`; vazio = o do idioma), guarda e avisa as outras abas. */\n setHourCycle(value: SpineHourCyclePreference): void {\n const cycle = toHourCycle(value);\n this.applyRegionalFormat(cycle, this.weekStart());\n this.write(this.hourCycleKey, cycle);\n this.channel?.postMessage({ type: 'HOUR_CYCLE_CHANGED', value: cycle });\n }\n\n /** Primeiro dia da semana na hora (0 = domingo, 1 = segunda; `null` = o do idioma), guarda e avisa. */\n setWeekStart(value: SpineWeekStartPreference): void {\n const day = toWeekStart(value);\n this.applyRegionalFormat(this.hourCycle(), day);\n this.write(this.weekStartKey, day === null ? '' : String(day));\n this.channel?.postMessage({ type: 'WEEK_START_CHANGED', value: day });\n }\n\n private applyRegionalFormat(hourCycle: SpineHourCyclePreference, weekStart: SpineWeekStartPreference): void {\n this.hourCycle.set(hourCycle);\n this.weekStart.set(weekStart);\n this.i18n.setRegionalFormat({ hourCycle: hourCycle || null, firstDayOfWeek: weekStart });\n }\n\n /** Minutos sem uso até encerrar a sessão (0 = nunca), guarda e avisa as outras abas. */\n setIdleMinutes(value: number): void {\n const minutes = toIdleMinutes(value);\n this.idleMinutes.set(minutes);\n this.write(this.idleKey, minutes ? String(minutes) : '');\n this.channel?.postMessage({ type: 'IDLE_CHANGED', value: minutes });\n }\n\n /** Tela inicial depois do login, guarda e avisa as outras abas. */\n setStartPage(value: SpineStartPagePreference): void {\n const page = toStartPage(value);\n this.startPage.set(page);\n this.write(this.startPageKey, page === 'home' ? '' : page);\n this.channel?.postMessage({ type: 'START_PAGE_CHANGED', value: page });\n }\n\n /** Liga/desliga um tipo de aviso, guarda e avisa as outras abas. */\n setNoticeType(id: string, enabled: boolean): void {\n this.setNoticeTypes({ ...this.noticeTypes(), [id]: enabled });\n }\n\n /** Troca o mapa inteiro de tipos de aviso (restaurar, sincronização com a conta). */\n setNoticeTypes(value: Readonly<Record<string, boolean>>): void {\n const types = toNoticeTypes(JSON.stringify(value ?? {}));\n this.noticeTypes.set(types);\n this.write(this.noticesKey, Object.keys(types).length ? JSON.stringify(types) : '');\n this.channel?.postMessage({ type: 'NOTICES_CHANGED', value: types });\n }\n\n /** Liga/desliga o aviso do navegador, guarda e avisa as outras abas (a permissão é pedida por quem chama). */\n setBrowserNotices(enabled: boolean): void {\n this.browserNotices.set(enabled);\n this.write(this.browserNoticesKey, enabled ? 'on' : '');\n this.channel?.postMessage({ type: 'BROWSER_NOTICES_CHANGED', value: enabled });\n }\n\n /** Liga/desliga a divisão da área de abas em painéis, guarda e avisa as outras abas. */\n setSplitTabs(enabled: boolean): void {\n this.splitTabs.set(enabled);\n this.write(this.splitTabsKey, enabled ? 'on' : '');\n this.channel?.postMessage({ type: 'SPLIT_TABS_CHANGED', value: enabled });\n }\n\n setTimeZone(value: string): void {\n this.timeZone.set(value);\n this.write(this.timeZoneKey, value);\n this.channel?.postMessage({ type: 'TIME_ZONE_CHANGED', value });\n }\n\n /** Todos os fusos IANA que o navegador conhece (vazio em navegador antigo). */\n supportedTimeZones(): string[] {\n const intl = Intl as unknown as { supportedValuesOf?: (key: string) => string[] };\n try {\n return intl.supportedValuesOf?.('timeZone') ?? [];\n } catch {\n return [];\n }\n }\n\n private read(key: string): string {\n if (!this.browser) return '';\n try { return localStorage.getItem(key) ?? ''; } catch { return ''; }\n }\n\n private write(key: string, value: string): void {\n if (!this.browser) return;\n try {\n if (value) localStorage.setItem(key, value);\n else localStorage.removeItem(key);\n } catch { /* storage indisponível */ }\n }\n}\n\nfunction toIdleMinutes(value: unknown): number {\n const minutes = Number(value);\n return Number.isInteger(minutes) && minutes > 0 && minutes <= 24 * 60 ? minutes : 0;\n}\n\nfunction toStartPage(value: unknown): SpineStartPagePreference {\n if (value === 'last') return 'last';\n if (typeof value === 'string' && value.startsWith('fav:') && value.length > 4 && value.length <= 500) return value as `fav:${string}`;\n return 'home';\n}\n\n/** Texto JSON salvo → mapa `id` → booleano (o resto é descartado). */\nfunction toNoticeTypes(raw: string): Record<string, boolean> {\n let parsed: unknown;\n try { parsed = raw ? JSON.parse(raw) : {}; } catch { return {}; }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n const out: Record<string, boolean> = {};\n for (const [id, enabled] of Object.entries(parsed as Record<string, unknown>)) {\n if (typeof enabled === 'boolean' && /^[\\w.:-]{1,64}$/.test(id)) out[id] = enabled;\n }\n return out;\n}\n\nfunction toHourCycle(value: unknown): SpineHourCyclePreference {\n return value === 'h12' || value === 'h23' ? value : '';\n}\n\n/** `0`…`6` (número ou texto salvo) → dia da semana; o resto, `null`. */\nfunction toWeekStart(value: unknown): SpineWeekStartPreference {\n if (value === null || value === undefined || value === '') return null;\n const day = Number(value);\n return Number.isInteger(day) && day >= 0 && day <= 6 ? (day as Weekday) : null;\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Base da API do argos-admin-server (ex.: `https://exemplo.com.br/argos/admin/api`) —\n * recursos do próprio usuário (`/me/*`, hoje os tokens de aplicação) que o painel de\n * configurações usa. Quem chama `provideAutoService({ adminApi })` já fornece este token (é a\n * mesma URL); um app sem auto-service fornece direto, ou fica sem as partes do painel que\n * dependem do servidor (elas se escondem em vez de quebrar).\n */\nexport const SPINE_ADMIN_API = new InjectionToken<string>('SPINE_ADMIN_API');\n","import { DestroyRef, Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { AuthorizationService } from '@orfeu/angular/core';\nimport { SPINE_CONFIG } from './app-config.token';\n\n/** Listas do shell guardadas no navegador, por usuário. */\nexport const SPINE_USER_STORAGE_KEYS = {\n favorites: 'nav_favorites',\n recents: 'nav_recent',\n recentSearches: 'header_recent_searches',\n /** Última tela visitada, guardada só com a tela inicial \"Última tela visitada\" (`SpineStartPageService`). */\n lastPage: 'start_last_page',\n} as const;\n\nexport type SpineUserStorageKey = (typeof SPINE_USER_STORAGE_KEYS)[keyof typeof SPINE_USER_STORAGE_KEYS];\n\n/** Históricos (o que a pessoa visitou/buscou): apagados no logout. Favoritos ficam (preferência do usuário). */\nconst HISTORY_KEYS: readonly SpineUserStorageKey[] = [SPINE_USER_STORAGE_KEYS.recents, SPINE_USER_STORAGE_KEYS.recentSearches];\n// A última tela (`lastPage`) fica no logout de propósito: é ela que a tela inicial \"Última tela visitada\" abre no\n// próximo login. Só é gravada quando a pessoa escolheu essa opção.\n\n/**\n * Chaves de `localStorage` do shell por usuário: `<clientId>_<lista>_<sub>`, com o `sub` do token da sessão.\n * Num computador compartilhado, uma pessoa não vê os recentes/buscas/favoritos de quem entrou antes.\n *\n * - Sem `sub` (sem sessão, ou app sem `@orfeu/angular`) a chave é a antiga, `<clientId>_<lista>`.\n * - Com `sub`, a chave antiga sem usuário é apagada (era compartilhada entre todas as contas do navegador).\n * - No logout (`clearHistory()`, chamado pelo `SpineLogoutService` só quando o `logout()` deu certo, e o `isAuth$`\n * indo para `false`, que cobre o logout vindo de outra aba) os HISTÓRICOS do usuário saem; os favoritos ficam.\n * Logout que falhou no Argos (`@orfeu/angular` 1.3.x) mantém a sessão e os históricos.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpineUserStorage {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly auth = inject(AuthorizationService, { optional: true });\n private readonly ns = inject(SPINE_CONFIG, { optional: true })?.clientId || 'app';\n private readonly listeners = new Set<() => void>();\n /** Último usuário visto: o token some no logout, mas a limpeza precisa saber de quem era. */\n private lastUser = '';\n\n constructor() {\n const isAuth$ = (this.auth as { isAuth$?: { subscribe(next: (v: boolean) => void): { unsubscribe(): void } } } | null)?.isAuth$;\n if (!this.browser || !isAuth$?.subscribe) return;\n let was = false;\n const sub = isAuth$.subscribe((authenticated) => {\n if (was && !authenticated) this.clearHistory();\n was = authenticated;\n this.notify();\n });\n inject(DestroyRef).onDestroy(() => sub.unsubscribe());\n }\n\n /** `sub` do token da sessão (só leitura do payload); vazio sem sessão. */\n userId(): string {\n let token: string | null | undefined;\n try {\n token = this.auth?.getToken();\n } catch {\n token = null;\n }\n const sub = token ? decodeSub(token) : '';\n if (sub) this.lastUser = sub;\n return sub;\n }\n\n /** Chave de `localStorage` da lista para o usuário atual. */\n key(list: SpineUserStorageKey): string {\n const user = this.userId();\n const legacy = `${this.ns}_${list}`;\n if (!user) return legacy;\n this.dropLegacy(legacy);\n return `${legacy}_${user}`;\n }\n\n /** Apaga buscas recentes e páginas recentes do usuário (o atual ou o último visto). Favoritos ficam. */\n clearHistory(): void {\n if (!this.browser) return;\n const user = this.userId() || this.lastUser;\n for (const list of HISTORY_KEYS) {\n try {\n localStorage.removeItem(user ? `${this.ns}_${list}_${user}` : `${this.ns}_${list}`);\n } catch {\n /* storage indisponível */\n }\n }\n this.notify();\n }\n\n /**\n * Apaga uma lista do usuário atual (Configurações › Dados do navegador): a chave dele, e também a antiga sem\n * usuário. Quem guarda a lista em memória relê (`onChange`).\n */\n clear(list: SpineUserStorageKey): void {\n if (!this.browser) return;\n try {\n localStorage.removeItem(this.key(list));\n localStorage.removeItem(`${this.ns}_${list}`);\n } catch {\n /* storage indisponível */\n }\n this.notify();\n }\n\n /** Quantos itens a lista do usuário atual tem guardados (0 sem nada ou com valor ilegível). */\n count(list: SpineUserStorageKey): number {\n if (!this.browser) return 0;\n try {\n const parsed: unknown = JSON.parse(localStorage.getItem(this.key(list)) ?? '[]');\n return Array.isArray(parsed) ? parsed.length : 0;\n } catch {\n return 0;\n }\n }\n\n /** Avisa quando a sessão muda ou o histórico é limpo (quem guarda a lista em memória relê). */\n onChange(listener: () => void): () => void {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n private notify(): void {\n for (const listener of [...this.listeners]) listener();\n }\n\n private dropLegacy(key: string): void {\n if (!this.browser) return;\n try {\n if (localStorage.getItem(key) !== null) localStorage.removeItem(key);\n } catch {\n /* storage indisponível */\n }\n }\n}\n\nfunction decodeSub(token: string): string {\n const payload = token.split('.')[1];\n if (!payload) return '';\n try {\n const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/').padEnd(Math.ceil(payload.length / 4) * 4, '='));\n const sub = (JSON.parse(json) as Record<string, unknown>)['sub'];\n return typeof sub === 'string' ? sub : '';\n } catch {\n return '';\n }\n}\n","import { DestroyRef, Injectable, PLATFORM_ID, WritableSignal, computed, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { SPINE_USER_STORAGE_KEYS, SpineUserStorage } from './user-storage';\n\n/** A page remembered by the shell, either as a favorite or as a recent visit. */\nexport interface QuickAccessItem {\n readonly id: string;\n readonly icon: string;\n readonly displayName: string;\n readonly redirect: string;\n /** Ancestor labels, top-down. `[]` = top-level page; absent = stored by an older version. */\n readonly trail?: readonly string[];\n /** When the page was last opened (epoch ms), for \"12 min ago\" on the home screen. Only on recents. */\n readonly visitedAt?: number;\n}\n\n// The sidebar navigation writes the same history list and trims it to this size; both writers must agree.\nconst RECENT_LIMIT = 10;\n// Reopening the page on top of the list only rewrites its time after this long.\nconst VISIT_REFRESH_MS = 60_000;\n\ntype ListState = WritableSignal<readonly QuickAccessItem[]>;\n\n/**\n * Favorites and recently visited pages, shared by every consumer in the app (page bar, home screen)\n * and persisted per client and per user in `localStorage` (`SpineUserStorage`: `<clientId>_nav_favorites_<sub>`).\n * Recents are cleared on logout; switching users reloads both lists.\n */\n@Injectable({ providedIn: 'root' })\nexport class SpineQuickAccessService {\n private readonly browser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly storage = inject(SpineUserStorage);\n private readonly favoriteList: ListState = signal<readonly QuickAccessItem[]>([]);\n private readonly recentList: ListState = signal<readonly QuickAccessItem[]>([]);\n\n readonly favorites = this.favoriteList.asReadonly();\n readonly recents = this.recentList.asReadonly();\n\n private readonly favoriteSet = computed(() => new Set(this.favoriteList().map((item) => item.id)));\n\n constructor() {\n if (!this.browser) return;\n\n this.reload();\n\n const onStorage = (event: StorageEvent) => {\n if (event.key === this.favoritesKey) this.favoriteList.set(this.load(this.favoritesKey));\n else if (event.key === this.recentsKey) this.recentList.set(this.load(this.recentsKey));\n };\n window.addEventListener('storage', onStorage);\n // Sessão mudou (logout, outra conta) ou histórico limpo: relê as listas do usuário atual.\n const stop = this.storage.onChange(() => this.reload());\n inject(DestroyRef).onDestroy(() => {\n window.removeEventListener('storage', onStorage);\n stop();\n });\n }\n\n private get favoritesKey(): string {\n return this.storage.key(SPINE_USER_STORAGE_KEYS.favorites);\n }\n\n private get recentsKey(): string {\n return this.storage.key(SPINE_USER_STORAGE_KEYS.recents);\n }\n\n private reload(): void {\n this.favoriteList.set(this.load(this.favoritesKey));\n this.recentList.set(this.load(this.recentsKey));\n }\n\n isFavorite(id: string | null | undefined): boolean {\n return !!id && this.favoriteSet().has(id);\n }\n\n toggleFavorite(item: QuickAccessItem): void {\n const current = this.favoriteList();\n const next = current.some((f) => f.id === item.id) ? current.filter((f) => f.id !== item.id) : [...current, item];\n this.commit(this.favoriteList, this.favoritesKey, next);\n }\n\n /** Troca a lista de favoritos inteira (sincronização com a conta). Itens inválidos ou repetidos são descartados. */\n setFavorites(items: readonly unknown[]): void {\n const seen = new Set<string>();\n const next = items.flatMap((entry) => {\n const item = normalize(entry);\n if (!item || seen.has(item.id)) return [];\n seen.add(item.id);\n return [item];\n });\n this.commit(this.favoriteList, this.favoritesKey, next);\n }\n\n recordVisit(item: QuickAccessItem): void {\n const current = this.recentList();\n const top = current[0];\n const visited = { ...item, visitedAt: Date.now() };\n // Same page again: only the time moves (and only when it is stale, so a re-render does not rewrite storage).\n if (top && top.id === item.id && top.displayName === item.displayName && sameTrail(top.trail, item.trail)) {\n if (top.visitedAt && visited.visitedAt - top.visitedAt < VISIT_REFRESH_MS) return;\n this.commit(this.recentList, this.recentsKey, [visited, ...current.slice(1)]);\n return;\n }\n const next = [visited, ...current.filter((r) => r.id !== item.id)].slice(0, RECENT_LIMIT);\n this.commit(this.recentList, this.recentsKey, next);\n }\n\n forgetRecent(id: string): void {\n this.commit(this.recentList, this.recentsKey, this.recentList().filter((r) => r.id !== id));\n }\n\n private commit(state: ListState, key: string, items: readonly QuickAccessItem[]): void {\n state.set(items);\n if (!this.browser) return;\n try {\n localStorage.setItem(key, JSON.stringify(items));\n } catch {\n // Quota exceeded or storage blocked: the in-memory list stays authoritative for this session.\n }\n }\n\n private load(key: string): readonly QuickAccessItem[] {\n let parsed: unknown;\n try {\n const raw = localStorage.getItem(key);\n if (raw == null) return [];\n parsed = JSON.parse(raw);\n } catch {\n return [];\n }\n if (!Array.isArray(parsed)) return [];\n return parsed.flatMap((entry) => {\n const item = normalize(entry);\n return item ? [item] : [];\n });\n }\n}\n\nfunction normalize(entry: unknown): QuickAccessItem | null {\n if (!entry || typeof entry !== 'object') return null;\n const raw = entry as Record<string, unknown>;\n if (typeof raw['redirect'] !== 'string' || !raw['redirect']) return null;\n const redirect = raw['redirect'];\n const item: { -readonly [K in keyof QuickAccessItem]: QuickAccessItem[K] } = {\n id: typeof raw['id'] === 'string' && raw['id'] ? raw['id'] : redirect,\n icon: typeof raw['icon'] === 'string' ? raw['icon'] : '',\n displayName: typeof raw['displayName'] === 'string' ? raw['displayName'] : '',\n redirect,\n };\n if (Array.isArray(raw['trail'])) item.trail = raw['trail'].filter((t): t is string => typeof t === 'string');\n if (typeof raw['visitedAt'] === 'number' && Number.isFinite(raw['visitedAt'])) item.visitedAt = raw['visitedAt'];\n return item;\n}\n\nfunction sameTrail(a: readonly string[] | undefined, b: readonly string[] | undefined): boolean {\n const left = a ?? [];\n const right = b ?? [];\n return left.length === right.length && left.every((label, i) => label === right[i]);\n}\n","/**\n * O mínimo do `environment` de um app que dá pra derivar em tempo de execução. Estrutural de\n * propósito (não importa o `Environment` de nenhum app): serve pra todos.\n */\nexport interface RuntimeEnvironmentShape {\n authorizationServer: { authority?: string; redirectUrl?: string; postLogoutRedirectUri?: string };\n graphql?: Record<string, { http: string; ws?: string }>;\n}\n\nexport interface RuntimeEnvironmentInfo {\n /** `window.location.origin`. */\n readonly origin: string;\n /** Prefixo do app (base href sem a barra final), ex.: `/app-exemplo`. Vazio na raiz. */\n readonly basePath: string;\n /** Sem porta na URL: o app está atrás do proxy (Caddy), não na porta direta do container. */\n readonly behindProxy: boolean;\n /** URL ainda sem valor real (vazia ou `CHANGE_ME`) — a única que pode ser derivada. */\n readonly unset: (url: string | undefined) => boolean;\n}\n\n/**\n * Ajusta o `environment` ao lugar onde o app está rodando — chamar no `main.ts`, ANTES do\n * `bootstrapApplication` e DEPOIS do `loadRuntimeConfig` (que traz o `config.json` do deploy: o que ele definir\n * explicitamente não é derivado aqui). Antes cada app tinha a sua versão (só o Hefesto derivava as URLs); agora a\n * regra é uma só:\n *\n * - **Sempre:** `redirectUrl`/`postLogoutRedirectUri` = origem + prefixo atual. O servidor exige\n * `redirect_uri` absoluto e o app pode viver sob um prefixo (`/app-exemplo`); um valor fixo no\n * environment não bate com a rota real e o callback nunca casa.\n * - **Atrás do proxy (sem porta na URL):**\n * - `authority` = `<origem>/argos` — mesmo domínio da página, senão o cookie de sessão sai com o\n * escopo errado e a sessão não persiste (bug já visto no argos);\n * - cada endpoint GraphQL **ainda sem valor real** vira `<origem><prefixo>/graphql` (HTTP e WS —\n * o WebSocket atende no mesmo caminho do HTTP em todo GraphQL do astra). URL explícita no\n * environment sempre ganha: em prod o front pode estar num domínio e o backend em outro.\n *\n * Devolve `origin`/`basePath`/`behindProxy`/`unset` pro que for específico do app (ex.: a URL da\n * API REST do hefesto-server).\n */\nexport function applyRuntimeEnvironment(environment: RuntimeEnvironmentShape): RuntimeEnvironmentInfo {\n const basePath = new URL(document.baseURI).pathname.replace(/\\/$/, '');\n const origin = window.location.origin;\n const behindProxy = !window.location.port;\n const unset = (url: string | undefined): boolean => !url || url.includes('CHANGE_ME');\n\n environment.authorizationServer.redirectUrl = `${origin}${basePath}/callback`;\n environment.authorizationServer.postLogoutRedirectUri = `${origin}${basePath}/logoff`;\n\n if (behindProxy) {\n environment.authorizationServer.authority = `${origin}/argos`;\n for (const endpoint of Object.values(environment.graphql ?? {})) {\n if (unset(endpoint.http)) {\n endpoint.http = `${origin}${basePath}/graphql`;\n endpoint.ws = `${origin.replace(/^http/, 'ws')}${basePath}/graphql`;\n }\n }\n }\n\n return { origin, basePath, behindProxy, unset };\n}\n","import { PluralMessage } from '@trismegisto/primitives';\n\n/**\n * Textos do próprio spine (cabeçalho, navegação, configurações, configuração inicial, telas do auto-serviço…), no\n * mesmo formato do `HermesMessages` da lib: seção → chave, parâmetros nomeados (`{name}`) e plural\n * por `PluralMessage`. Alguns textos levam marcação simples (`<b>`, `<strong>`, `<code>`) e são\n * exibidos com `[innerHTML]` — estão indicados no comentário. Os que têm parâmetro saem por\n * `formatMessageHtml` (`@trismegisto/primitives`), que escapa o valor (o `check-strings` reprova `fmt` ali).\n *\n * O idioma ativo é o do `HermesI18nService` da lib: `setLocale` troca a lib e o spine juntos.\n */\nexport interface SpineMessages {\n meta: { locale: string };\n /** Central de notificações (o sino do cabeçalho): as novidades das fontes registradas (`provideSpineInboxSource`). */\n inbox: {\n title: string;\n /** Nome do sino, com quantos itens têm novidade. */\n button: PluralMessage;\n empty: string;\n error: string;\n retry: string;\n /** \"3 novidades\" num item que junta várias. */\n news: PluralMessage;\n };\n header: {\n home: string;\n apps: string;\n themeDark: string;\n themeLight: string;\n densityComfortable: string;\n densityCompact: string;\n fullscreen: string;\n exitFullscreen: string;\n user: string;\n accessLevels: string;\n settings: string;\n appearance: string;\n shortcuts: string;\n news: string;\n /** \"Novidades\" no menu do perfil com as não vistas: `{label}` e `{count}`. */\n newsUnseen: string;\n logout: string;\n search: string;\n searchPlaceholder: string;\n /** Grupos da busca (paleta): com o campo vazio, só favoritos, abertos há pouco e módulos. */\n searchFavorites: string;\n searchRecent: string;\n searchModules: string;\n searchScreens: string;\n };\n navigation: {\n back: string;\n home: string;\n favorite: string;\n unfavorite: string;\n copyLink: string;\n linkCopied: string;\n };\n sidebar: {\n modules: string;\n /** `{module}` = nome do módulo aberto. */\n moduleNavigation: string;\n apps: string;\n /** Menu de contexto de uma página do menu lateral. */\n openInNewTab: string;\n };\n pageBar: {\n favorite: string;\n unfavorite: string;\n copyLink: string;\n linkCopied: string;\n docs: string;\n trail: string;\n };\n pagePanel: {\n notFoundTitle: string;\n notFoundText: string;\n };\n docs: {\n heading: string;\n index: string;\n search: string;\n noMatch: string;\n empty: string;\n view: string;\n usage: string;\n technical: string;\n loading: string;\n loadError: string;\n /** Convite no lado da leitura enquanto nenhuma página do índice foi aberta. */\n invite: string;\n };\n /** Novidades: painel lateral (lista) e o aviso discreto da entrada. */\n news: {\n heading: string;\n close: string;\n /** Selo da novidade ainda não vista. */\n unseen: string;\n /** Aviso da entrada com uma novidade. `{title}`. */\n toastOne: string;\n /** Aviso da entrada com várias. `{count}`. */\n toastMany: string;\n see: string;\n loading: string;\n empty: string;\n /** A lista não veio (rede, servidor); com `retry`. */\n loadError: string;\n retry: string;\n /** Nome acessível da lista de novidades (agrupada por mês). */\n pages: string;\n /** Busca do painel: rótulo (escondido) e o texto de exemplo. */\n search: string;\n searchPlaceholder: string;\n /** Nome acessível do grupo de filtros em pílula e cada filtro (a contagem vem ao lado). */\n filters: string;\n filterAll: string;\n filterUnread: string;\n filterFavorites: string;\n /** Marcador de cada item. `{title}`. */\n favorite: string;\n unfavorite: string;\n /** Nada passou na busca ou no filtro. */\n noResults: string;\n /** Primeiro degrau da trilha do modal (a tela inicial). */\n home: string;\n /** Implementação: título da lista de mudanças. */\n changes: string;\n /** Alteração: os dois lados da comparação. */\n before: string;\n after: string;\n /** Rodapé do modal. */\n markUnread: string;\n gotIt: string;\n /** Tipo da novidade, na linha de meta do modal. */\n kindInformativo: string;\n kindImplementacao: string;\n kindAlteracao: string;\n /** `{date}`: data da publicação. */\n publishedOn: string;\n /** `{date}`: a novidade foi alterada depois de publicada. */\n editedOn: string;\n /** Nome acessível do texto da novidade (rich text só leitura) no modal. */\n body: string;\n /** A novidade aberta não veio (rede, servidor, saiu do ar). */\n detailError: string;\n };\n /** Auto-serviço, tela Novidades: o que o spine mostra em \"Novidades\" para quem entra no app. */\n autoServiceNews: {\n caption: string;\n empty: string;\n newNews: string;\n editNews: string;\n /** Subtítulo do cabeçalho do editor, ao criar e ao editar. */\n newNewsIntro: string;\n editNewsIntro: string;\n /** Seções numeradas do editor: título e descrição curta de cada uma. */\n sectionMain: string;\n sectionMainHint: string;\n sectionBody: string;\n sectionBodyHint: string;\n sectionPublish: string;\n sectionUntil: string;\n sectionAudience: string;\n /** Prévia ao vivo do card de novidades do Início, no painel lateral do editor. */\n preview: string;\n /** Título e resumo da prévia enquanto os campos estão vazios. */\n previewTitle: string;\n previewSummary: string;\n /** Prévia sem data de publicação: sai ao salvar. */\n previewNow: string;\n /** Dica de uma linha no painel lateral: `tipTitle` em negrito e `tipText` logo depois. */\n tipTitle: string;\n tipText: string;\n /** Rótulo do campo de data da seção de validade. */\n untilDate: string;\n /** Rótulo do campo de grupos da seção de público. */\n audienceGroups: string;\n /** Seletor do tipo de publicação (segmentado, no topo do editor) e cada tipo. */\n kind: string;\n kindInformativo: string;\n kindImplementacao: string;\n kindAlteracao: string;\n /** Descrição da seção de conteúdo na implementação e na alteração (a do informativo é `sectionBodyHint`). */\n sectionBodyHintImpl: string;\n sectionBodyHintAlt: string;\n /** Introdução opcional (rich text) da implementação e da alteração. */\n intro: string;\n /** Lista de mudanças da implementação: rótulo, dica, exemplo do campo e lista vazia. */\n items: string;\n itemsHint: string;\n itemPlaceholder: string;\n itemsEmpty: string;\n /** Alteração: os dois lados (rich text). */\n before: string;\n after: string;\n colTitle: string;\n colPublishedAt: string;\n colUntil: string;\n colAudience: string;\n colAuthor: string;\n colStatus: string;\n statusScheduled: string;\n statusPublished: string;\n statusExpired: string;\n /** Público sem grupo: todos que entram no app. */\n audienceAll: string;\n /** Validade vazia. */\n noUntil: string;\n title: string;\n summary: string;\n summaryHint: string;\n body: string;\n bodyHint: string;\n publishDate: string;\n publishTime: string;\n publishHint: string;\n until: string;\n untilHint: string;\n audience: string;\n audienceHint: string;\n confirmDeleteHeading: string;\n /** `{title}`. */\n confirmDelete: string;\n saveError: string;\n /** A lista não veio (rede, servidor). */\n loadError: string;\n /** Códigos do argos-admin (`{ error }`) e a regra local de datas. */\n errors: {\n invalidTitle: string;\n invalidSummary: string;\n bodyTooLarge: string;\n invalidPublishedAt: string;\n invalidUntil: string;\n invalidGroupIds: string;\n untilBeforePublish: string;\n invalidKind: string;\n invalidItems: string;\n invalidCompare: string;\n compareTooLarge: string;\n };\n };\n /** Configuração inicial em tela cheia (aparência) e \"O essencial\". `*Text` levam `{key}` = tecla. */\n setup: {\n label: string;\n /** `{current}` de `{total}`. */\n step: string;\n skip: string;\n back: string;\n next: string;\n finish: string;\n close: string;\n /** `{name}`: primeiro nome. */\n greeting: string;\n greetingAnonymous: string;\n appearanceIntro: string;\n preview: string;\n previewPage: string;\n essentialsTitle: string;\n essentialsIntro: string;\n searchTitle: string;\n searchText: string;\n tabsTitle: string;\n tabsText: string;\n favoritesTitle: string;\n favoritesText: string;\n settingsTitle: string;\n settingsText: string;\n };\n shortcuts: {\n heading: string;\n /** `{key}` vira a tecla desenhada como chip. */\n hint: string;\n essentials: string;\n dismiss: string;\n openSearch: string;\n goHome: string;\n goFavorite: string;\n history: string;\n openSettings: string;\n toggleSidebar: string;\n toggleTheme: string;\n /** @deprecated Sem atalho desde que a tela cheia ficou com o `F11` do navegador e o botão do cabeçalho. */\n fullscreen: string;\n /** @deprecated Sem atalho: sair fica no menu do perfil. */\n logout: string;\n showHelp: string;\n closeOverlay: string;\n };\n settings: {\n heading: string;\n appearance: string;\n appearanceKeywords: string;\n theme: string;\n themeDescription: string;\n themeKeywords: string;\n themeLight: string;\n themeDark: string;\n themeSystem: string;\n accent: string;\n accentDescription: string;\n accentKeywords: string;\n density: string;\n densityDescription: string;\n densityKeywords: string;\n comfortable: string;\n compact: string;\n font: string;\n fontDescription: string;\n fontKeywords: string;\n sidebar: string;\n sidebarDescription: string;\n sidebarKeywords: string;\n /** Detalhe de cada modo do menu lateral (toggletip ao lado do rótulo). */\n sidebarHelp: string;\n sidebarAuto: string;\n sidebarFixed: string;\n sidebarCompact: string;\n /** Dividir a área de abas em painéis (lado a lado ou empilhados). Desligado por padrão. */\n splitTabs: string;\n splitTabsDescription: string;\n splitTabsKeywords: string;\n region: string;\n regionKeywords: string;\n language: string;\n languageDescription: string;\n languageKeywords: string;\n /** `{language}` = idioma padrão do app. */\n languageAuto: string;\n timeZone: string;\n timeZoneKeywords: string;\n /** `{now}` = data e hora agora no fuso escolhido. */\n timeZoneHint: string;\n /** `{zone}` = fuso detectado no navegador. */\n timeZoneAuto: string;\n /** Formato de hora (Região): automático pelo idioma, 24 ou 12 horas. `{now}` = hora agora no formato. */\n hourCycle: string;\n hourCycleHint: string;\n hourCycleKeywords: string;\n hourCycleAuto: string;\n hourCycle24: string;\n hourCycle12: string;\n /** Primeiro dia da semana (Região); domingo e segunda saem do `Intl`, no idioma. */\n weekStart: string;\n weekStartDescription: string;\n weekStartKeywords: string;\n weekStartAuto: string;\n shortcuts: string;\n shortcutsDescription: string;\n shortcutsKeywords: string;\n setup: string;\n setupDescription: string;\n setupKeywords: string;\n redoSetup: string;\n essentials: string;\n essentialsDescription: string;\n essentialsKeywords: string;\n showEssentials: string;\n /** Seção \"Acessibilidade\" (`?settings=acessibilidade`). */\n accessibility: string;\n accessibilityKeywords: string;\n textSize: string;\n textSizeDescription: string;\n textSizeKeywords: string;\n motion: string;\n motionDescription: string;\n motionKeywords: string;\n motionSystem: string;\n motionReduce: string;\n motionFull: string;\n /** Seção \"Ajuda\" (`?settings=ajuda`): novidades, configuração inicial e o essencial. */\n help: string;\n helpKeywords: string;\n news: string;\n newsDescription: string;\n newsKeywords: string;\n showNews: string;\n /** Seção \"Dados do navegador\" (`?settings=dados`): listas guardadas e restaurar preferências. */\n browserData: string;\n browserDataDescription: string;\n browserDataKeywords: string;\n recentPages: string;\n recentPagesKeywords: string;\n recentSearches: string;\n recentSearchesKeywords: string;\n favorites: string;\n favoritesKeywords: string;\n /** Quantos itens a lista guarda (descrição da linha). */\n pagesCount: PluralMessage;\n searchesCount: PluralMessage;\n clear: string;\n confirmClear: string;\n cancel: string;\n recentPagesCleared: string;\n recentSearchesCleared: string;\n favoritesCleared: string;\n restorePreferences: string;\n restorePreferencesDescription: string;\n /** O que volta ao padrão e o que fica (toggletip ao lado do rótulo). */\n restorePreferencesHelp: string;\n restorePreferencesKeywords: string;\n restore: string;\n confirmRestore: string;\n preferencesRestored: string;\n account: string;\n accountKeywords: string;\n user: string;\n accessLevel: string;\n accessLevelKeywords: string;\n session: string;\n sessionDescription: string;\n sessionKeywords: string;\n sessionUnknown: string;\n /** `{time}` = hora. */\n sessionExpired: string;\n /** `{minutes}` e `{time}`. */\n sessionExpiresIn: string;\n sessionExpiresAt: string;\n accessToken: string;\n accessTokenDescription: string;\n accessTokenKeywords: string;\n copy: string;\n /** Nome acessível do toggletip de ajuda de uma linha; `{label}` é o rótulo da linha. */\n moreAbout: string;\n appTokens: string;\n appTokensDescription: string;\n appTokensKeywords: string;\n /** Detalhe dos tokens de aplicação (toggletip ao lado do rótulo). */\n appTokensHelp: string;\n /** Seção \"Grupos\" (`?settings=grupos`): os grupos desta aplicação de que a pessoa é membro. */\n groups: string;\n groupsDescription: string;\n groupsKeywords: string;\n /** Função e crachá de um grupo (na lista e no topo da tela de membros); `{role}`, `{badge}`. */\n groupRole: string;\n /** O mesmo, para um grupo desativado; `{role}`. */\n groupRoleDisabled: string;\n logout: string;\n logoutDescription: string;\n logoutKeywords: string;\n /** Seção \"MFA\" (`?settings=mfa`; a antiga `seguranca` também abre). */\n mfa: string;\n mfaDescription: string;\n mfaKeywords: string;\n signedInAccount: string;\n /** `{realm}` = realm do Argos (nome ou id, como o app usa no login). */\n signedInRealm: string;\n twoFactor: string;\n twoFactorDescription: string;\n twoFactorKeywords: string;\n recoveryCodes: string;\n recoveryCodesDescription: string;\n recoveryCodesKeywords: string;\n /** Linha \"Sessões e dispositivos\" (dentro da seção Sessões). */\n sessions: string;\n sessionsDescription: string;\n sessionsKeywords: string;\n /** Seção \"Sessões\" (`?settings=sessoes`): sessão, token de acesso, tokens de aplicação, sessões e dispositivos. */\n sessionsSection: string;\n sessionsSectionDescription: string;\n sessionsSectionKeywords: string;\n about: string;\n aboutKeywords: string;\n application: string;\n version: string;\n versionKeywords: string;\n buildDate: string;\n environment: string;\n environmentKeywords: string;\n links: string;\n linksKeywords: string;\n docs: string;\n reportIssue: string;\n repository: string;\n dependencies: string;\n dependenciesDescription: string;\n dependenciesKeywords: string;\n supportInfo: string;\n supportInfoDescription: string;\n supportInfoKeywords: string;\n noSessionToken: string;\n tokenCopied: string;\n supportCopied: string;\n copyBlocked: string;\n };\n /** Rótulos do texto que \"Informações para suporte\" copia. */\n support: {\n application: string;\n version: string;\n build: string;\n environment: string;\n page: string;\n browser: string;\n screen: string;\n theme: string;\n /** `{theme}`, `{mode}`, `{family}`, `{density}`, `{font}`. */\n themeValue: string;\n timeZone: string;\n accessLevel: string;\n date: string;\n };\n appTokens: {\n unavailable: string;\n /** `{name}`. */\n created: string;\n /** `[innerHTML]`; `{date}`. */\n sendHeader: string;\n copyToken: string;\n saved: string;\n loading: string;\n /** `{date}`. */\n expiredOn: string;\n expiresOn: string;\n lastUsed: string;\n never: string;\n revoke: string;\n confirmRevoke: string;\n empty: string;\n noBadges: string;\n /** `[innerHTML]`; `{name}` = aplicação. */\n appOnly: string;\n accessLevel: string;\n name: string;\n namePlaceholder: string;\n nameRequired: string;\n nameMax: string;\n validity: string;\n days30: string;\n days90: string;\n months6: string;\n year1: string;\n create: string;\n cancel: string;\n newToken: string;\n /** `{valid}` de `{max}`. */\n validCount: string;\n limit: string;\n loadError: string;\n badgesError: string;\n createError: string;\n copied: string;\n copyFailed: string;\n /** `{name}`. */\n revoked: string;\n revokeError: string;\n };\n /** Membros de um grupo na seção \"Grupos\" das configurações (argos-admin `/me/groups`). */\n myGroups: {\n loading: string;\n loadError: string;\n /** Nome de cada função no grupo (o Argos guarda Administrador, Editor ou nenhuma). */\n roleAdministrator: string;\n roleEditor: string;\n /** Sem função: o membro comum, que só vê os outros. */\n roleMember: string;\n /** Rótulo acessível da lista de grupos. */\n listLabel: string;\n /** Botão no topo da tela de membros. */\n back: string;\n /** Marca a própria pessoa na lista. */\n you: string;\n membersCount: PluralMessage;\n /** Contagem com a busca da lista aplicada. */\n matchesCount: PluralMessage;\n empty: string;\n /** Lista vazia por causa da busca. */\n noMatches: string;\n /** Rótulo da busca na lista de membros (a lista é paginada no servidor). */\n filterMembers: string;\n /** Progresso da carga (a lista vem em páginas do servidor, até o fim); `{loaded}`, `{total}`. */\n loadingProgress: string;\n /** A busca já filtra o que chegou, mas a carga continua. */\n partialResults: string;\n /** Falha depois de parte da lista carregada; `{loaded}`, `{total}`. */\n loadIncomplete: string;\n /** Botão que continua a carga de onde parou. */\n retry: string;\n /** Aviso de quem é membro sem função. */\n readOnly: string;\n addMember: string;\n /** `{group}`. */\n addHeading: string;\n search: string;\n searchPlaceholder: string;\n searchHint: string;\n searching: string;\n noResults: string;\n searchError: string;\n /** Resultado da busca que já está no grupo. */\n alreadyMember: string;\n role: string;\n /** Editor não escolhe a função. */\n editorAddsMembers: string;\n add: string;\n cancel: string;\n /** `{name}`. */\n added: string;\n addError: string;\n /** Rótulo acessível do seletor de função; `{name}`. */\n roleOf: string;\n /** `{name}`, `{role}`. */\n roleChanged: string;\n roleError: string;\n remove: string;\n confirmRemove: string;\n /** `{name}`. */\n removed: string;\n removeError: string;\n };\n accountSecurity: {\n loading: string;\n loadError: string;\n retry: string;\n methodTotp: string;\n methodEmail: string;\n methodSms: string;\n active: string;\n /** `{detail}` = e-mail mascarado. */\n activeWithDetail: string;\n notRegistered: string;\n unavailable: string;\n requiredHint: string;\n add: string;\n replaceDevice: string;\n remove: string;\n cancel: string;\n confirm: string;\n /** `{method}`. */\n removeTitle: string;\n removeHint: string;\n removeLastHint: string;\n reauthTitle: string;\n reauthHint: string;\n reauthHow: string;\n reauthPassword: string;\n reauthRecoveryCode: string;\n currentPassword: string;\n passwordRequired: string;\n recoveryCode: string;\n recoveryCodePlaceholder: string;\n recoveryCodeRequired: string;\n recoveryCodeLength: string;\n sendEmailCode: string;\n sixDigitCode: string;\n totpTitle: string;\n qrAlt: string;\n manualKey: string;\n appCode: string;\n emailTitle: string;\n email: string;\n emailPlaceholder: string;\n emailRequired: string;\n emailInvalid: string;\n sendCode: string;\n emailCodeTitle: string;\n /** `{email}`. */\n emailCodeHint: string;\n codesRemaining: PluralMessage;\n codesHint: string;\n codesNeedMethod: string;\n generateCodes: string;\n regenerateCodes: string;\n codesTitle: string;\n codesShownOnce: string;\n copyCodes: string;\n downloadCodes: string;\n codesCopied: string;\n copyFailed: string;\n codesSaved: string;\n /** Primeira linha do .txt baixado/copiado. */\n codesFileHeader: string;\n codesFileName: string;\n notices: {\n methodAdded: string;\n deviceReplaced: string;\n methodRemoved: string;\n codesRegenerated: string;\n reauthCodeSent: string;\n };\n /** Por código de erro da API da conta do Argos; `generic` para o resto. */\n errors: {\n generic: string;\n network: string;\n login_required: string;\n invalid_token: string;\n reauthentication_required: string;\n invalid_password: string;\n account_locked: string;\n invalid_code: string;\n invalid_recovery_code: string;\n code_expired: string;\n code_not_requested: string;\n too_many_attempts: string;\n too_many_requests: string;\n mfa_method_not_allowed: string;\n mfa_method_not_found: string;\n mfa_last_method: string;\n invalid_email: string;\n enrollment_not_started: string;\n sms_not_available: string;\n mfa_required_for_recovery_codes: string;\n session_not_found: string;\n };\n sessionsEmpty: string;\n thisSession: string;\n thisBrowser: string;\n appsOnly: string;\n /** `{ip}`, `{date}`. */\n sessionDetail: string;\n unknownIp: string;\n /** `{date}`. */\n sessionSince: string;\n /** `{apps}`. */\n sessionApps: string;\n unnamedApp: string;\n endSession: string;\n confirmEndSession: string;\n endOthers: string;\n endOthersConfirm: PluralMessage;\n sessionEndedNotice: string;\n othersEndedNotice: PluralMessage;\n };\n /**\n * Avaliações (`SpineFeatures.ratings`): nota de 0 a 10 (5 estrelas com meia), o formulário da pessoa, a estrela do\n * cabeçalho, a média em Configurações › Sobre e a tela Avaliações do auto-serviço.\n */\n ratings: {\n /** Botão da barra da página (estrela). */\n rateScreen: string;\n /** Estrela do cabeçalho e título do diálogo: `{app}` = nome do app. */\n rateApp: string;\n /** A mesma estrela depois de avaliar: `{app}`. */\n ratedApp: string;\n heading: string;\n subheading: string;\n /** O que está sendo avaliado, abaixo do título: `{screen}` (caminho legível) e `{app}`. */\n aboutScreen: string;\n aboutApp: string;\n /** Rótulo das estrelas no formulário (nome do slider). */\n score: string;\n /** Nota para o leitor: `{value}` (\"7 de 10\"; média \"8,4 de 10\"). */\n scoreOf: string;\n /** Valor falado do slider: `{value}` e `{name}` (de `scoreNames`). */\n scoreNamed: string;\n /** A nota ao lado das estrelas: `{value}` (\"7/10\"). */\n scoreShort: string;\n /** Rótulo de cada faixa: 1 = 0–2, 2 = 3–4, 3 = 5–6, 4 = 7–8, 5 = 9–10. */\n scoreNames: Record<1 | 2 | 3 | 4 | 5, string>;\n /** Valor falado do slider antes da escolha. */\n noScore: string;\n scaleHint: string;\n comment: string;\n commentPlaceholder: string;\n submit: string;\n update: string;\n /** Já avaliou: `{date}`. */\n previous: string;\n scoreRequired: string;\n loading: string;\n thanks: string;\n updated: string;\n saveError: string;\n // ── Auto-serviço (tela Avaliações) ──\n period: string;\n periods: Record<'all' | 'd7' | 'd30' | 'd90', string>;\n refresh: string;\n appCard: string;\n screensCard: string;\n /** Subtítulos dos KPIs da ferramenta e das telas. */\n appCardHint: string;\n screensCardHint: string;\n /** O \"/10\" menor ao lado da média em destaque. */\n scoreMax: string;\n average: string;\n total: PluralMessage;\n comments: PluralMessage;\n noRatings: string;\n distribution: string;\n /** Coluna do histograma para o leitor: `{score}` (a nota, 0 a 10), `{count}` (de `total`) e `{share}`. */\n distributionRow: string;\n /** Nome das abas Telas / Áreas / Tendências (`ranking`) e o subtítulo antigo do ranking. */\n ranking: string;\n rankingHint: string;\n sort: string;\n sorts: Record<'worst' | 'best' | 'most', string>;\n noScreens: string;\n /** Botão de uma tela no ranking: `{screen}`. */\n filterByScreen: string;\n recent: string;\n recentHint: string;\n filterScope: string;\n allScopes: string;\n tool: string;\n screens: string;\n filterScreen: string;\n allScreens: string;\n filterScore: string;\n allScores: string;\n withComment: string;\n clearFilters: string;\n noComment: string;\n /** Menu ⋮ de uma avaliação: o nome do botão e as ações (copiar o comentário, filtrar pelo alvo). */\n itemActions: string;\n copyComment: string;\n commentCopied: string;\n copyFailed: string;\n showAppRatings: string;\n showScreenRatings: string;\n emptyList: string;\n pagination: string;\n unknownUser: string;\n loadError: string;\n forbidden: string;\n // ── Tela Avaliações: barra da página, KPIs, abas, tabela, tendência e lista curta ──\n /** \"Atualizado em {date} às {time}\" (na barra da página). */\n updatedAt: string;\n /** \"Ver detalhes\" de cada KPI e o complemento para o leitor: `{name}` = o título do KPI. */\n details: string;\n detailsOf: string;\n tabScreens: string;\n tabAreas: string;\n tabTrends: string;\n viewAll: string;\n allHeading: string;\n /** Quando, na lista curta: \"Agora há pouco\", \"Ontem às {time}\", \"{date} às {time}\". */\n justNow: string;\n yesterdayAt: string;\n dateAt: string;\n /** Ordenação curta da tabela. */\n sortsShort: Record<'worst' | 'best' | 'most', string>;\n /** Filtro da faixa da nota: todas, ruim (< 5), média (5 a 6,9), boa (7 ou mais). */\n bands: Record<'all' | 'bad' | 'mid' | 'good', string>;\n bandFilter: string;\n filterArea: string;\n allAreas: string;\n noArea: string;\n /** Linha de uma área: `{area}`. */\n filterByArea: string;\n screensCount: PluralMessage;\n searchScreens: string;\n searchScreensLabel: string;\n searchAreas: string;\n searchAreasLabel: string;\n tableEmpty: string;\n areasEmpty: string;\n colScreen: string;\n colArea: string;\n colScreens: string;\n colScore: string;\n colTotal: string;\n colComments: string;\n colTrend: string;\n /** Cabeçalho (só para o leitor) da coluna do chevron. */\n colOpen: string;\n tablePagination: string;\n areasPagination: string;\n /** Sparkline para o leitor: `{first}` e `{last}` (médias da primeira e da última semana com nota). */\n trendOf: string;\n trendNone: string;\n trendCaption: string;\n trendEmpty: string;\n /** Uma série numa semana: `{series}` e `{value}` (ou `noScore`). */\n trendValue: string;\n /** Dica de uma semana: `{week}` (dd/mm), `{values}` (de `trendValue`, juntos) e `{count}` (de `total`). */\n trendWeek: string;\n // ── Configurações › Sobre (média da ferramenta para qualquer pessoa logada) ──\n aboutRating: string;\n aboutRatingKeywords: string;\n rateAction: string;\n noRatingsYet: string;\n loadingAverage: string;\n averageError: string;\n };\n notification: {\n genericError: string;\n };\n graphql: {\n /** Envelope ausente: o resolver estourou e o campo voltou `null` (`unwrap`). */\n noResponse: string;\n serviceFailure: string;\n done: string;\n failed: string;\n };\n /** Telas de acesso do shell (`/blocked`, `/no-permission`). */\n access: {\n blockedText: string;\n blockedAction: string;\n noRightsText: string;\n };\n /**\n * Retorno do login (`/callback`) e aviso de conexão do shell (`spine-connection-banner`), sobre o\n * `connectionState$`/`reauthorizationRequired$` do `@orfeu/angular`. A sessão nunca cai por isso.\n */\n session: {\n /** Argos inalcançável (sem acesso à rede, servidor fora do ar): a sessão continua, a lib tenta de novo sozinha. */\n offline: string;\n reconnecting: string;\n reauthorizing: string;\n /** O Argos recusou a renovação e a reautorização automática não aconteceu: a pessoa decide. */\n reauthorizationRequired: string;\n signInAgain: string;\n callbackFailedHeading: string;\n callbackFailedText: string;\n /** `logout()` que o Argos não confirmou (o `@orfeu/angular` repetiu uma vez): a sessão continua. */\n logoutFailed: string;\n };\n routing: {\n notPublished: string;\n /** `{code}` = id da rota. */\n notPublishedCode: string;\n };\n home: {\n noAccessTitle: string;\n noAccessText: string;\n yourScreens: string;\n modules: string;\n privileged: string;\n recent: string;\n recentCaption: string;\n screenCount: PluralMessage;\n /** `{name}`. */\n favorite: string;\n unfavorite: string;\n favorites: string;\n /** Saudação pela hora do dia; com o nome, `greetingName` (`{greeting}`, `{name}`). */\n morning: string;\n afternoon: string;\n evening: string;\n greetingName: string;\n intro: string;\n seeAll: string;\n seeLess: string;\n /** `{name}`. Menu de ações de um item de \"Continuar de onde parou\". */\n recentActions: string;\n forgetRecent: string;\n explore: string;\n exploreIntro: string;\n news: string;\n newsBadge: string;\n newsAll: string;\n favoritesEmpty: string;\n help: string;\n shortcuts: string;\n essentials: string;\n settings: string;\n systemDocs: string;\n };\n /** Telas do auto-serviço. Textos com `[innerHTML]` indicados. */\n autoService: {\n loading: string;\n cancel: string;\n save: string;\n create: string;\n edit: string;\n remove: string;\n /** Botão \"Consultar\" ao lado dos seletores de Grupos e Aplicações. */\n search: string;\n active: string;\n inactive: string;\n confirmChanges: string;\n appsTitle: string;\n /** Nome acessível da faixa de abas da tela Cliente (Rotas/Roteadores/Acesso). */\n clientSections: string;\n tabRoutes: string;\n tabRouters: string;\n tabAccess: string;\n /** `[innerHTML]`. Sem client: a pessoa não administra o app em que está logada. */\n noClients: string;\n /** `{status}`. A lista de clients administrados não veio (Argos fora do ar, rede, erro do servidor): não é falta de permissão. */\n clientsLoadError: string;\n retryLoad: string;\n pickClient: string;\n /** Placeholder do seletor de grupo (Grupos, depois do nível de acesso). */\n pickGroup: string;\n noDescription: string;\n manageMembers: string;\n membersCaption: string;\n noMembers: string;\n colUser: string;\n colMemberSince: string;\n /** `{group}`. */\n membersHeading: string;\n addUser: string;\n userSearch: string;\n role: string;\n noRole: string;\n add: string;\n suggestions: string;\n /** Critério das sugestões (dica ao lado do título). */\n suggestionsHint: string;\n /** Dica do chip: `{groups}` = grupos do sistema em que a pessoa está. */\n suggestionGroups: string;\n /** Nome acessível do chip: `{name}`. */\n addSuggestion: string;\n membersTitle: string;\n memberSearch: string;\n /** `{group}`. */\n membersOf: string;\n noMembersShort: string;\n /** Lista de membros vazia por causa da busca (a busca vai ao servidor). */\n noMembersMatch: string;\n /** Progresso da carga dos membros (páginas do servidor até o fim); `{loaded}`, `{total}`. */\n membersLoadingProgress: string;\n /** A carga continua: a lista e a busca ainda podem crescer. */\n membersPartialResults: string;\n /** Falha depois de parte da lista carregada; `{loaded}`, `{total}` (o botão é `retryLoad`). */\n membersLoadIncomplete: string;\n newMember: string;\n /** `{user}`. */\n addedBy: string;\n removal: string;\n removalEmpty: string;\n undoRemoval: string;\n saveChanges: string;\n colRole: string;\n colAddedAt: string;\n newAccess: string;\n newAccessHeading: string;\n accessCaption: string;\n noAccess: string;\n colGroup: string;\n manageRoutes: string;\n group: string;\n /** `{group}`. */\n routesOf: string;\n noPrivateRoutes: string;\n register: string;\n secretCreated: string;\n /** Rótulo do seletor de aplicação (Aplicações, com \"Consultar\"). */\n pickApp: string;\n disable: string;\n enable: string;\n delete: string;\n /** Nome acessível da faixa de abas da aplicação escolhida (Operações/Acessos/Tokens). */\n appSections: string;\n tabOperations: string;\n tabAccesses: string;\n editApp: string;\n newApp: string;\n name: string;\n grants: string;\n appAccessCaption: string;\n noAppAccess: string;\n colType: string;\n manageOperations: string;\n /** Título da coluna com o botão \"Gerenciar operações\" (abas Acessos e Tokens da aplicação). */\n colOperations: string;\n /** Título da coluna com o botão \"Gerenciar rotas\" (aba Acesso do client), como no painel do Argos. */\n colGuards: string;\n /** Coluna da aba Acesso: rostos dos membros do grupo. */\n colMembers: string;\n /** Campo de filtro no topo do drawer \"Gerenciar operações\" (rótulo acessível e placeholder). */\n filterOperations: string;\n /** Campo de filtro no topo do drawer \"Gerenciar rotas\". */\n filterRoutes: string;\n /** `{term}`. Filtro dos drawers sem nenhum item que case. */\n noFilterMatch: string;\n /** Nome acessível da árvore do drawer \"Gerenciar rotas\". */\n routesTreeLabel: string;\n /** `{group}`. */\n operationsOf: string;\n noOperations: string;\n operationsCaption: string;\n colIdentifier: string;\n colMethod: string;\n colLevel: string;\n colDescription: string;\n colAllowedGroups: string;\n groupCount: PluralMessage;\n newRouter: string;\n routersCaption: string;\n noRouters: string;\n private: string;\n public: string;\n editRouter: string;\n page: string;\n hierarchy: string;\n levelHeader: string;\n levelNavigation: string;\n levelMenu: string;\n levelItem: string;\n levelSubmenu: string;\n privateHint: string;\n routerDescription: string;\n routerDescriptionHint: string;\n colPage: string;\n colBuiltPath: string;\n colVisibility: string;\n /** Coluna e campo do roteador: tipos de grupo (crachás) que podem receber acesso à tela (`allowed_type_ids`). */\n colAllowedBadges: string;\n /** Roteador sem restrição de crachá (`allowed_type_ids` vazio); também o placeholder do campo. */\n anyBadge: string;\n allowedBadgesHint: string;\n newRoute: string;\n routesCaption: string;\n noRoutes: string;\n editRoute: string;\n internalName: string;\n displayName: string;\n icon: string;\n iconPlaceholder: string;\n path: string;\n info: string;\n excludable: string;\n /** Dica do \"Excluível\" ao editar rota protegida: o auto-serviço não libera, só o Argos central. */\n excludableLocked: string;\n /** Selo da rota/roteador que veio de template (não editável pelo auto-serviço) e a explicação dele. */\n templateTag: string;\n templateLocked: string;\n /** Exemplo e regra do caminho: um trecho só do endereço (o \"/\" entre níveis é o roteador que põe). */\n pathPlaceholder: string;\n pathHint: string;\n pathInvalid: string;\n /** Campo do id opcional na criação de rota, roteador e grupo (mesmo id em homologação e produção). */\n optionalId: string;\n optionalIdPlaceholder: string;\n optionalIdHint: string;\n optionalIdInvalid: string;\n /** 409 id_taken: o id escolhido já existe. */\n idTaken: string;\n /** Confirmação das exclusões (diálogo): título e mensagem; `{name}`, `{path}` ou `{group}`. */\n /**\n * \"Gerar novo segredo\" de uma aplicação: botão, confirmação, a janela que mostra o segredo uma vez\n * (`{name}` = nome da aplicação), copiar e os erros (genérico, 404 e 403).\n */\n rotateSecret: string;\n confirmRotateSecretHeading: string;\n confirmRotateSecret: string;\n rotatedSecretHeading: string;\n rotatedSecretWarning: string;\n rotatedSecretNote: string;\n rotatedSecretLabel: string;\n copySecret: string;\n secretCopied: string;\n rotatedSecretDone: string;\n rotateSecretError: string;\n rotateSecretNotFound: string;\n rotateSecretForbidden: string;\n confirmDeleteAppHeading: string;\n confirmDeleteApp: string;\n confirmDeleteRouteHeading: string;\n confirmDeleteRoute: string;\n confirmDeleteRouterHeading: string;\n confirmDeleteRouter: string;\n confirmRemoveAccessHeading: string;\n confirmRemoveAccess: string;\n confirmRemoveConsumerHeading: string;\n confirmRemoveConsumer: string;\n /** Toasts depois de excluir/remover. */\n deleteDone: string;\n deleteError: string;\n colExcludable: string;\n excludableYes: string;\n excludableNo: string;\n colName: string;\n colDisplay: string;\n colIcon: string;\n colPath: string;\n /** Coluna do id (UUID) em Rotas e Roteadores: só o botão de copiar. */\n colId: string;\n /** `{name}`. Nome acessível do botão que copia o UUID da rota. */\n copyRouteId: string;\n /** `{name}`. Nome acessível do botão que copia o UUID do roteador. */\n copyRouterId: string;\n idCopied: string;\n /** Botão da aba Roteadores e título do modal que muda a ordem dos itens no menu do app. */\n reorder: string;\n reorderTitle: string;\n reorderHint: string;\n /** Nome acessível da trilha de níveis do modal e o primeiro degrau (o topo do menu). */\n reorderPath: string;\n reorderRoot: string;\n /** `{name}`: nome acessível da lista ordenável do nível aberto (ou o topo, `reorderRoot`). */\n reorderListLabel: string;\n reorderEmpty: string;\n /** `{name}`. */\n moveUp: string;\n moveDown: string;\n openLevel: string;\n childCount: PluralMessage;\n /** `{name}`, `{position}`, `{total}`: anúncio da região viva depois de mover por botão. */\n movedTo: string;\n reorderLoadError: string;\n reorderSaveError: string;\n reorderSave: string;\n /** Tela Grupos: lista dos grupos do projeto, criar/editar/excluir. */\n newGroup: string;\n editGroup: string;\n noGroups: string;\n /** Tela Grupos: primeiro seletor (o tipo do grupo, do nível mais alto para o mais baixo). */\n accessLevel: string;\n pickAccessLevel: string;\n /** Opção do seletor de nível para os grupos sem tipo. */\n noLevel: string;\n /** Nível escolhido sem nenhum grupo. */\n noGroupsOfLevel: string;\n colStatus: string;\n groupName: string;\n groupType: string;\n groupTypePlaceholder: string;\n groupDescription: string;\n /** Confirmação da exclusão; `{name}`. */\n confirmDeleteGroupHeading: string;\n confirmDeleteGroup: string;\n groupSaveError: string;\n membersSaveError: string;\n /** Tela Aplicações: o projeto ainda não tem aplicação (embaixo do seletor). */\n noApps: string;\n /** Aba Tokens da aplicação: tokens de API (`x-api-token`), criar e revogar. */\n tabTokens: string;\n tokensCaption: string;\n noTokens: string;\n newToken: string;\n colTokenPrefix: string;\n colExpiresAt: string;\n colLastUsed: string;\n tokenExpired: string;\n tokenRevoked: string;\n neverUsed: string;\n revokeToken: string;\n confirmRevokeTokenHeading: string;\n /** `{name}`. */\n confirmRevokeToken: string;\n /** `{name}`. */\n tokenRevokedDone: string;\n tokenRevokeError: string;\n tokensLoadError: string;\n /** Modal \"Novo token\": campos, validade (de amanhã a 365 dias) e as operações liberadas ao token. */\n tokenName: string;\n tokenDescription: string;\n tokenExpiresAt: string;\n tokenExpiresHint: string;\n tokenExpiresInvalid: string;\n tokenOperations: string;\n tokenOperationsNote: string;\n /** Grupo: por que a operação não depende de permissão (public/optional, private, outro nível). No \"Gerenciar operações\"\n * entra só no nome acessível da operação (leitor de tela), não aparece ao lado dela. */\n freeForAll: string;\n freeForAuthenticated: string;\n freeNoPermission: string;\n /** Token: operação public (caixa desmarcada e desabilitada; o token não precisa dela). Aparece no \"Novo token\"; no\n * \"Gerenciar operações\" entra só no nome acessível. */\n publicNoToken: string;\n createToken: string;\n tokenSaveError: string;\n /** O token criado, mostrado uma única vez; `{name}` = nome do token. */\n tokenCreatedHeading: string;\n tokenCreatedWarning: string;\n tokenCreatedNote: string;\n tokenValueLabel: string;\n copyToken: string;\n tokenCopied: string;\n /** Roteadores: a hierarquia é de cima para baixo (cada nível só com o de cima escolhido). */\n hierarchyHint: string;\n routerSaveError: string;\n /** \"Gerenciar operações\" (grupo ou token): falha ao gravar alguma liberação/retirada. */\n permissionsSaveError: string;\n /** \"Gerenciar operações\": resumo no topo (`{marked}` de `{total}` escolhíveis liberadas), grupo e token. */\n permissionsSummaryGroup: string;\n permissionsSummaryToken: string;\n /** Resumo das operações travadas (não dependem de permissão): grupo (aparecem marcadas) e token (public). */\n permissionsFreeGroup: PluralMessage;\n permissionsFreeToken: PluralMessage;\n /** Contador da pasta da árvore: `{marked}` de `{total}` operações escolhíveis dentro dela. */\n permissionsFolderCount: string;\n /** Nome acessível da árvore de operações. */\n permissionsTreeLabel: string;\n /** Erros do argos-admin-server nos tokens de aplicação, pelo código (`error`) da resposta (ver `autoServiceErrorText`). */\n tokenErrors: {\n invalidExpiresAt: string;\n invalidValidity: string;\n invalidOperationIds: string;\n /** `operation_not_protected`: grupo só recebe operação protected. */\n operationNotProtected: string;\n /** `operation_public`: operação public não se libera a token. */\n operationPublic: string;\n appNotFound: string;\n tokenNotFound: string;\n };\n /** Erros do argos-admin-server nos roteadores (`router_hierarchy_gap`: nível sem o nível de cima). */\n routerErrors: {\n hierarchyGap: string;\n /** Algum id de `allowed_type_ids` não é tipo de grupo do realm. */\n invalidAllowedTypes: string;\n };\n /**\n * Erros do argos-admin-server nos grupos e acessos do auto-serviço, pelo código (`error`) da resposta\n * (ver `autoServiceErrorText`). `groupNotFound` é o 404 de grupo de outro projeto.\n */\n groupErrors: {\n invalidType: string;\n adminTypeReserved: string;\n emptyUpdate: string;\n groupProjectImmutable: string;\n groupNameTaken: string;\n adminGroupImmutable: string;\n adminGroupProtected: string;\n adminGroupLastMember: string;\n adminGroupAccessProtected: string;\n groupNotFound: string;\n };\n };\n /**\n * Tela \"Auditoria\" (`@trismegisto/spine/audit`, `SpineAuditComponent`): a mesma nos dois escopos — o\n * auto-serviço (apps do projeto do client) e o painel central do argos admin (`scope: 'admin'`). O nome\n * da chave ficou do tempo em que só o auto-serviço a tinha.\n */\n autoServiceAudit: {\n title: string;\n period: string;\n periodLastHour: string;\n period24h: string;\n period7d: string;\n period30d: string;\n /** Aviso quando o período vem das datas da faixa de filtros (a escolha rápida fica sem efeito). */\n periodFromFilters: string;\n filters: string;\n filterDates: string;\n filterApp: string;\n filterUser: string;\n filterOperation: string;\n filterMethod: string;\n filterOutcome: string;\n filterEntry: string;\n userPlaceholder: string;\n operationPlaceholder: string;\n methodRead: string;\n methodWrite: string;\n methodDelete: string;\n methodStream: string;\n outcomeSuccess: string;\n outcomeFailure: string;\n outcomeDenied: string;\n kpiTotal: string;\n kpiTotalDescription: string;\n kpiFailures: string;\n kpiDenied: string;\n /** `{percent}`. */\n kpiShare: string;\n kpis: string;\n timeline: string;\n /** `{from}`, `{to}`. */\n timelineSummary: string;\n /** `{time}`, `{total}`, `{failures}`, `{denied}`. */\n bucketSummary: string;\n timelineEmpty: string;\n topOperations: string;\n topUsers: string;\n topApps: string;\n noTop: string;\n failureCount: PluralMessage;\n deniedCount: PluralMessage;\n /** `{name}`. */\n filterBy: string;\n eventsCaption: string;\n colWhen: string;\n colApp: string;\n colUser: string;\n colOperation: string;\n colMethod: string;\n colOutcome: string;\n colStatus: string;\n colDuration: string;\n /** `{ms}`. */\n durationMs: string;\n /** Rodapé da tabela: o que vem depois da contagem (\"1 - 50 de 120 {pageItems}\"). */\n pageItems: string;\n /** Rodapé da tabela: rótulo do seletor de eventos por página. */\n pageSize: string;\n /** Falha ao trocar de página (o resumo e a página anterior continuam). */\n pageError: string;\n loading: string;\n emptyTitle: string;\n emptyText: string;\n clearFilters: string;\n errorTitle: string;\n errorText: string;\n retry: string;\n rangeTooLarge: string;\n forbidden: string;\n anonymous: string;\n detailHeading: string;\n detailLoading: string;\n detailError: string;\n fieldWhen: string;\n fieldApp: string;\n fieldUser: string;\n fieldActor: string;\n fieldIp: string;\n fieldOperation: string;\n fieldIdentifier: string;\n fieldMethod: string;\n fieldLevel: string;\n fieldPermission: string;\n fieldOutcome: string;\n fieldStatus: string;\n fieldDuration: string;\n fieldRoute: string;\n fieldTarget: string;\n fieldOrigin: string;\n originEntry: string;\n originInternal: string;\n fieldTrace: string;\n fieldEventId: string;\n fieldMessage: string;\n fieldReceivedAt: string;\n fieldInstance: string;\n fieldSdk: string;\n fieldDetails: string;\n viewTrace: string;\n traceHeading: string;\n traceLoading: string;\n traceError: string;\n traceEmpty: string;\n traceHidden: PluralMessage;\n // ---- unificação admin/client (`@trismegisto/spine/audit`) ----\n period6h: string;\n refresh: string;\n autoRefresh: string;\n /** `{time}`. */\n updatedAt: string;\n /** Rótulo do indicador enquanto a tabela/rankings recarregam (as linhas atuais continuam à vista). */\n updating: string;\n filterUserId: string;\n filterLevel: string;\n filterPermission: string;\n filterActor: string;\n filterStatus: string;\n filterTrace: string;\n userIdPlaceholder: string;\n statusPlaceholder: string;\n tracePlaceholder: string;\n levelPublic: string;\n levelPrivate: string;\n levelProtected: string;\n levelOptional: string;\n permissionAllowed: string;\n permissionForbidden: string;\n permissionUnauthorized: string;\n permissionPublic: string;\n actorUser: string;\n actorAppToken: string;\n actorApiToken: string;\n actorPublic: string;\n actorUnauthenticated: string;\n /** Escopo `admin`: a conta não tem as operações `admin:audit:*`. */\n forbiddenAdmin: string;\n /** 400 `invalid_filter` do servidor. `{detail}` = explicação dele. */\n invalidFilter: string;\n /** Descrição dos KPIs clicáveis (falhas/negados viram filtro). */\n kpiFilterHint: string;\n /** Rodapé dos rankings: `{from}`, `{to}`, `{total}`. */\n topsRange: string;\n /** `{name}` = título do ranking. */\n topsPrevious: string;\n /** `{name}` = título do ranking. */\n topsNext: string;\n topsError: string;\n filterByTrace: string;\n\n // ---- leitura por AÇÃO (uma linha por trace) x por evento ----\n /** Rótulo do alternador \"Ações | Eventos\". */\n unitLabel: string;\n unitActions: string;\n unitEvents: string;\n kpiTotalActions: string;\n kpiTotalActionsDescription: string;\n /** `{from}`, `{to}`. */\n timelineSummaryActions: string;\n /** `{time}`, `{total}`, `{failures}`, `{denied}`. */\n bucketSummaryActions: string;\n timelineEmptyActions: string;\n actionsCaption: string;\n pageItemsActions: string;\n pageErrorActions: string;\n emptyTitleActions: string;\n /** Coluna com a quantidade de spans (registros) da ação. */\n colSpans: string;\n /** Dica da célula de spans: `{apps}` = aplicações envolvidas. */\n spansApps: string;\n /** Spans de fora do escopo do client: contados à parte. */\n spansHidden: PluralMessage;\n actionDetailHeading: string;\n /** Ação sem a entrada (entry) no período: começa por uma chamada entre aplicações. */\n orphanNote: string;\n orphanTag: string;\n spansHeading: string;\n /** Linha do tempo dos spans: `{count}` spans em `{duration}`. */\n spansSummary: string;\n /** `{app}`, `{operation}`, `{outcome}`, `{offset}`, `{duration}`. */\n spanRow: string;\n };\n /** Tela Tentativas de login (`SpineLoginAttemptsComponent`, `@trismegisto/spine/audit`). */\n /** Recursos opcionais do painel de configurações (`SpineFeatures`). */\n accountFeatures: {\n aiAgent: string;\n aiAgentDescription: string;\n aiAgentKeywords: string;\n aiAgentHelp: string;\n aiAgentStart: string;\n aiAgentServers: string;\n aiAgentAccess: string;\n aiAgentReadOnly: string;\n aiAgentReadWrite: string;\n aiAgentWriteHint: string;\n aiAgentReadOnlyServer: string;\n aiAgentTokenName: string;\n aiAgentGenerate: string;\n aiAgentSelectServer: string;\n aiAgentResult: string;\n aiAgentResultHint: string;\n aiAgentCopy: string;\n aiAgentCopied: string;\n aiAgentDone: string;\n aiAgentCreateError: string;\n aiAgentUnavailable: string;\n activity: string;\n activityDescription: string;\n activityKeywords: string;\n activityFilter: string;\n activityAll: string;\n activityFailures: string;\n activityDetail: string;\n activityApp: string;\n activityEmpty: string;\n activityMore: string;\n activityShowing: string;\n activityLoadError: string;\n unknownIp: string;\n unknownApp: string;\n idle: string;\n idleDescription: string;\n idleKeywords: string;\n idleNever: string;\n idleOption: string;\n idleLimitHint: string;\n idleWarningHeading: string;\n idleWarningText: PluralMessage;\n idleStay: string;\n idleLogout: string;\n startPage: string;\n startPageDescription: string;\n startPageKeywords: string;\n startHome: string;\n startLast: string;\n startFavorite: string;\n startPageHint: string;\n defaultBadge: string;\n defaultBadgeDescription: string;\n defaultBadgeKeywords: string;\n defaultBadgeAuto: string;\n defaultBadgeSaved: string;\n defaultBadgeError: string;\n defaultBadgeLoadError: string;\n notices: string;\n noticesDescription: string;\n noticesKeywords: string;\n browserNotices: string;\n browserNoticesDescription: string;\n browserNoticesDenied: string;\n browserNoticesUnsupported: string;\n /** Ação do aviso na tela que abre a `url` dele. */\n noticeOpen: string;\n sync: string;\n syncDescription: string;\n syncKeywords: string;\n syncSynced: string;\n syncSaving: string;\n syncLocal: string;\n syncError: string;\n syncNow: string;\n };\n loginAttempts: {\n refresh: string;\n user: string;\n userPlaceholder: string;\n period: string;\n result: string;\n method: string;\n all: string;\n clear: string;\n advancedFilters: string;\n ip: string;\n ipPlaceholder: string;\n ipHint: string;\n reason: string;\n caption: string;\n pageItems: string;\n pageSize: string;\n colDate: string;\n colResult: string;\n colMethod: string;\n colUser: string;\n colReason: string;\n colIp: string;\n colRealm: string;\n colClient: string;\n colUserAgent: string;\n filterByIp: string;\n filterByUser: string;\n /** Identificador digitado que não corresponde a usuário nenhum. */\n noMatchingUser: string;\n methods: Record<'local' | 'mfa' | 'github' | 'google' | 'keycloak' | 'entraid', string>;\n results: Record<'success' | 'failure' | 'cancelled', string>;\n reasons: Record<\n 'bad_password' | 'unknown_user' | 'locked' | 'mfa_failed' | 'mfa_expired' | 'mfa_not_allowed' | 'mfa_invalid_method'\n | 'recovery_failed' | 'recovery_refused' | 'not_linked' | 'wrong_realm',\n string\n >;\n /** 403 no painel central (falta a operação). */\n forbiddenAdmin: string;\n /** 403 no auto-serviço (não administra o client). */\n forbiddenClient: string;\n /** Erro com o detalhe do servidor: `{detail}`. */\n loadErrorDetail: string;\n loadError: string;\n };\n /** Sugestões de melhoria: o botão da barra da página, \"Minhas sugestões\" e o kanban do auto-serviço. */\n suggestions: {\n button: string;\n buttonHint: string;\n modalTitle: string;\n intro: string;\n kind: string;\n kinds: Record<'melhoria' | 'nova_funcionalidade' | 'problema' | 'outro', string>;\n statuses: Record<'em_analise' | 'planejada' | 'em_desenvolvimento' | 'concluida' | 'recusada', string>;\n /** Status que saíram (a 0035 do Argos tirou o \"Nova\") e ainda aparecem no histórico antigo. */\n legacyStatuses: Record<'nova', string>;\n title: string;\n titlePlaceholder: string;\n titleRequired: string;\n description: string;\n descriptionHint: string;\n screen: string;\n screenHint: string;\n send: string;\n cancel: string;\n sent: string;\n sendError: string;\n similarHeading: string;\n similarHint: string;\n /** \"+1\" numa sugestão que outra pessoa já fez. */\n vote: string;\n voted: string;\n votes: PluralMessage;\n voteError: string;\n yours: string;\n mine: string;\n mineEmpty: string;\n mineError: string;\n loadMore: string;\n statusFilter: string;\n allStatuses: string;\n adminReply: string;\n /** `{date}`. */\n sentAt: string;\n /** O quadro. */\n boardLabel: string;\n search: string;\n kindFilter: string;\n allKinds: string;\n refresh: string;\n /** `{shown}` de `{total}` quando há filtro. */\n boardFiltered: string;\n loadError: string;\n moveError: string;\n removedAuthor: string;\n noScreen: string;\n noDescription: string;\n requestedBy: string;\n requestedAt: string;\n status: string;\n statusSaved: string;\n statusError: string;\n history: string;\n historyEmpty: string;\n /** `{actor}`, `{from}`, `{to}`. */\n eventStatus: string;\n /** `{actor}`. */\n eventComment: string;\n someone: string;\n comment: string;\n commentHint: string;\n commentSend: string;\n commentSent: string;\n commentError: string;\n commentRequired: string;\n /** Quadro x arquivo (recusadas e concluídas antigas). */\n viewLabel: string;\n viewBoard: string;\n viewArchive: string;\n kpis: string;\n /** As abertas (em análise, planejadas e em desenvolvimento). */\n kpiOpen: string;\n /** `{status}`, `{count}`: o detalhamento por status no indicador das abertas. */\n kpiStatusCount: string;\n /** `{days}`. */\n kpiDone: string;\n /** `{count}`: concluídas hoje. */\n kpiDoneToday: string;\n kpiDoneNoneToday: string;\n /** `{count}`: venceram ontem (passaram a vencidas hoje). */\n kpiOverdueTrend: string;\n kpiOverdueSteady: string;\n kpiSoon: string;\n kpiMineHint: string;\n kpiPriority: string;\n kpiPriorityNone: string;\n /** `{priority}`, `{count}`: cada parte da legenda (botão que filtra). */\n kpiPriorityPart: string;\n /** Barra de filtros e criação. */\n filters: string;\n moreFilters: string;\n /** `{count}`: filtros extras ligados. */\n moreFiltersActive: string;\n allBoardStatuses: string;\n /** `{status}`. */\n newTaskIn: string;\n newTaskOptions: string;\n /** Coluna: resumo, vazio. `{age}`. */\n columnOldest: string;\n columnOverdue: PluralMessage;\n columnEmpty: string;\n columnEmptyFiltered: string;\n /** `{days}` na de concluídas. */\n columnEmptyHints: Record<'em_analise' | 'planejada' | 'em_desenvolvimento' | 'concluida', string>;\n /** Duração curta (\"4h 12min\"): `{d}`, `{h}`, `{m}`. */\n duration: Record<'days' | 'hours' | 'minutes', string>;\n /** Cartão: `{date}`. */\n createdOn: string;\n /** `{date}`: prazo futuro (não é hoje nem amanhã). */\n dueWithin: string;\n dueLateDays: PluralMessage;\n screenFilter: string;\n allScreens: string;\n authorFilter: string;\n allAuthors: string;\n sort: string;\n sorts: Record<'position' | 'votes' | 'recent', string>;\n /** Com ordenação por votos ou data, arrastar só troca de coluna. */\n sortHint: string;\n clearFilters: string;\n topVoted: string;\n comments: PluralMessage;\n /** `{date}`: quando entrou no status atual. */\n statusSince: string;\n openScreen: string;\n statusChange: string;\n statusComment: string;\n statusCommentHint: string;\n statusApply: string;\n archiveLabel: string;\n archiveSearch: string;\n archiveEmpty: string;\n /** `{days}`. */\n archiveEmptyHint: string;\n archiveCount: PluralMessage;\n /** `{date}`: quando foi concluída ou recusada. */\n closedOn: Record<'concluida' | 'recusada', string>;\n pagination: string;\n reopen: string;\n reopened: string;\n reopenError: string;\n /** Quadro de trabalho (a equipe trabalha a sugestão como tarefa). */\n newTask: string;\n addTaskPlaceholder: string;\n taskCreated: string;\n createError: string;\n saveError: string;\n kpiMine: string;\n kpiOverdue: string;\n assigneeFilter: string;\n allAssignees: string;\n assigneeMine: string;\n assigneeNone: string;\n labelFilter: string;\n allLabels: string;\n priorityFilter: string;\n allPriorities: string;\n dueFilter: string;\n dueAny: string;\n dueOverdueFilter: string;\n dueSoonFilter: string;\n priority: string;\n priorities: Record<'urgente' | 'alta' | 'media' | 'baixa', string>;\n /** `{date}`. */\n dueOn: string;\n dueToday: string;\n dueTomorrow: string;\n /** `{date}`. */\n dueLate: string;\n /** `{done}`, `{total}`. */\n checklistSpoken: string;\n /** `{count}`: responsáveis além dos que aparecem. */\n moreAssignees: string;\n /** `{key}`. */\n cardMenu: string;\n menuStatus: string;\n menuAssignMe: string;\n menuCopyLink: string;\n menuCopyKey: string;\n menuLabel: string;\n menuNoLabels: string;\n menuPriority: string;\n menuArchive: string;\n menuRestore: string;\n menuDelete: string;\n /** `{n}`: o nome falado de cada cor de rótulo. */\n labelColorName: string;\n linkCopied: string;\n keyCopied: string;\n copyError: string;\n /** `{key}`. */\n deleteHeading: string;\n deleteMessage: string;\n deleteConfirm: string;\n deleted: string;\n archivedToast: string;\n restoredToast: string;\n assignedToMe: string;\n archivedTag: string;\n /** Detalhe da tarefa. */\n taskLabel: string;\n close: string;\n editTitle: string;\n editDescription: string;\n save: string;\n checklist: string;\n checklistAdd: string;\n checklistPlaceholder: string;\n checklistOnCard: string;\n checklistEmpty: string;\n /** `{text}`. */\n checklistRemove: string;\n /** `{text}`. */\n checklistUp: string;\n /** `{text}`. */\n checklistDown: string;\n tabComments: string;\n tabActivity: string;\n commentsEmpty: string;\n activityEmpty: string;\n commentInternal: string;\n internalTag: string;\n /** `{actor}`, `{from}`, `{to}` por campo do evento 'change' (sufixo `_removed` = o valor saiu). */\n activity: Record<\n | 'created' | 'title' | 'description' | 'kind' | 'priority' | 'start_date' | 'start_date_removed' | 'due_date'\n | 'due_date_removed' | 'cover' | 'cover_removed' | 'checklist_on_card' | 'screen' | 'assignee_added' | 'assignee_removed'\n | 'watcher_added' | 'watcher_removed' | 'label_added' | 'label_removed' | 'checklist_added' | 'checklist_done'\n | 'checklist_undone' | 'checklist_renamed' | 'checklist_removed' | 'archived' | 'restored' | 'merged'\n | 'merged_here' | 'unmerged' | 'unmerged_here' | 'other',\n string\n >;\n assignees: string;\n assignMe: string;\n addAssignee: string;\n watchers: string;\n addWatcher: string;\n /** `{name}`. */\n removePerson: string;\n peopleSearch: string;\n peopleEmpty: string;\n nobody: string;\n reporter: string;\n originUser: string;\n originTeam: string;\n startDate: string;\n dueDate: string;\n labels: string;\n addLabel: string;\n /** `{name}`. */\n createLabel: string;\n labelColor: string;\n noLabels: string;\n screenOrigin: string;\n votesField: string;\n createdAt: string;\n updatedAt: string;\n /** `{when}`, `{actor}`. */\n lastChange: string;\n /** `{when}`. */\n lastChangeNoActor: string;\n key: string;\n copyKey: string;\n newTaskHeading: string;\n createTask: string;\n draftHint: string;\n assignMeOnCreate: string;\n /** \"Sugestões do app\": a gaveta com as de todo mundo no app (Todas) e as da pessoa (Minhas). */\n appSuggestions: string;\n /** Nome acessível do seletor Todas | Minhas. */\n listView: string;\n tabAll: string;\n tabMine: string;\n appSearch: string;\n /** Filtro rápido: só as pedidas na tela atual. */\n thisScreen: string;\n appSorts: Record<'votes' | 'recent', string>;\n appEmpty: string;\n appEmptyHint: string;\n appEmptyFiltered: string;\n appError: string;\n /** `{count}`: o botão de apoio, antes e depois de apoiar. */\n support: string;\n /** `{count}`. */\n supported: string;\n /** Dica do apoio desligado na sugestão da própria pessoa. */\n ownSupportHint: string;\n /** O detalhe só de leitura (clicar no título expande o item). */\n publicComments: string;\n publicCommentsEmpty: string;\n commentsError: string;\n moreComments: string;\n appPagination: string;\n /** Agrupar (a equipe junta pedidos repetidos numa sugestão só). */\n menuMerge: string;\n /** `{key}`. */\n mergeHeading: string;\n mergeIntro: string;\n mergeSearch: string;\n mergeNone: string;\n mergeHasMerged: string;\n /** `{votes}` (o plural de `votes`), `{reporters}` (o de `reportersCount`), `{key}`: o que passa para o destino. */\n mergePreview: string;\n mergeCalculating: string;\n mergePreviewError: string;\n reportersCount: PluralMessage;\n /** `{key}`, `{target}`. */\n mergeConfirmHeading: string;\n mergeConfirmMessage: string;\n mergeConfirm: string;\n /** `{key}`, `{target}`. */\n mergedToast: string;\n mergeError: string;\n mergedTag: string;\n /** `{key}`: o aviso na agrupada. */\n mergedInto: string;\n mergedIntoHint: string;\n /** `{key}`. */\n openMerged: string;\n unmerge: string;\n /** `{key}`: nome do botão de desagrupar uma das agrupadas. */\n unmergeLabel: string;\n /** `{key}`. */\n unmergedToast: string;\n reporters: string;\n reporterAuthor: string;\n /** `{key}`: o relator veio desta agrupada. */\n reporterVia: string;\n mergedHere: string;\n /** \"Minhas\": `{key}` (a da pessoa), `{target}` (a principal). */\n mergedFrom: string;\n mergedFromHint: string;\n /** Nome acessível do menu do botão da barra (sugerir ou abrir a página). */\n buttonMenu: string;\n /** O item do menu que abre a página \"Sugestões do app\" (sem passar pelo formulário). */\n openPage: string;\n /** Escolha da tela no modal: uma do menu do app ou uma nova. */\n screenPick: string;\n screenPickHint: string;\n screenPickPlaceholder: string;\n newScreenOption: string;\n newScreenName: string;\n newScreenHint: string;\n newScreenRequired: string;\n newScreenTag: string;\n /** Com quem está a vez na conversa (selo, filtro e o menu da equipe). */\n waiting: Record<'solicitante' | 'responsaveis', string>;\n waitingFilter: string;\n waitingAny: string;\n waitingClear: string;\n waitingSaved: string;\n menuWaiting: string;\n /** Grupos de quem pediu (o escopo de quem vê a sugestão). */\n groupFilter: string;\n allGroups: string;\n requestingGroups: string;\n noGroups: string;\n /** Mensagens de quem pede ainda não lidas por quem consulta. */\n unread: PluralMessage;\n /** O selo no comentário escrito por quem pediu (ou um envolvido). */\n fromRequester: string;\n /** O resumo do checklist no cartão (abre e fecha os itens): `{count}` itens, `{done}` feitos. */\n cardChecklist: PluralMessage;\n /** `{name}`: a foto de quem pediu no cartão. */\n requestedByName: string;\n /** A primeira aba do detalhe da tarefa (descrição e checklist). */\n tabSummary: string;\n /** Conversa em chat: `{name}` e `{role}` (Solicitante | Equipe) no cabeçalho de quem escreveu do outro lado. */\n chatAuthor: string;\n /** A dica do campo da conversa. */\n chatSendHint: string;\n /** A página \"Sugestões do app\" de quem pede (lista, filtros e o painel com a conversa). */\n /** A fonte \"Sugestões\" na central de notificações. */\n inbox: {\n label: string;\n /** A última novidade é um comentário: `{name}`, `{comment}`. */\n comment: string;\n /** A última novidade é uma mudança de status: `{name}`, `{status}`. */\n status: string;\n };\n page: {\n title: string;\n description: string;\n /** O cabeçalho da lista sem recorte e cada parte do resumo por status (`{count}`, `{status}`). */\n allTitle: string;\n statusPart: string;\n reasons: Record<'autor' | 'relator' | 'envolvido' | 'responsavel' | 'grupo', string>;\n /** Por que a pessoa vê a sugestão, no detalhe. */\n reasonHints: Record<'autor' | 'relator' | 'envolvido' | 'responsavel' | 'grupo', string>;\n reasonFilter: string;\n allReasons: string;\n needsYou: string;\n sorts: Record<'activity' | 'recent' | 'votes', string>;\n empty: string;\n emptyHint: string;\n emptyFiltered: string;\n error: string;\n count: PluralMessage;\n pickOne: string;\n notFound: string;\n conversation: string;\n conversationEmpty: string;\n conversationError: string;\n olderMessages: string;\n reply: string;\n replyPlaceholder: string;\n replySend: string;\n replyError: string;\n readOnly: string;\n team: string;\n you: string;\n groups: string;\n details: string;\n listLabel: string;\n filtersLabel: string;\n waitingYou: string;\n waitingTeam: string;\n };\n /** Visões de planejamento do quadro (Resumo, Tarefas, Planejamento, Cronograma, Riscos e Fluxo). */\n planning: {\n viewSummary: string;\n viewTasks: string;\n viewPlanning: string;\n viewSchedule: string;\n viewRisks: string;\n viewWorkflow: string;\n loadError: string;\n saveError: string;\n retry: string;\n save: string;\n cancel: string;\n delete: string;\n edit: string;\n points: string;\n /** `{count}` pontos, abreviado (\"5 pts\"). */\n pointsValue: PluralMessage;\n noEstimate: string;\n backlog: string;\n noSprint: string;\n unassigned: string;\n /** `{start}`, `{end}`. */\n dateRange: string;\n summary: {\n activeSprint: string;\n /** `{done}`, `{total}`. */\n sprintPoints: string;\n /** `{capacity}`. */\n sprintCapacity: string;\n openTasks: string;\n overdue: string;\n mine: string;\n mineEmpty: string;\n deadlines: string;\n deadlinesEmpty: string;\n topRisks: string;\n topRisksEmpty: string;\n /** `{likelihood}`, `{impact}`. */\n riskScore: string;\n nextMilestone: string;\n nextMilestoneEmpty: string;\n };\n tasks: {\n viewLabel: string;\n viewList: string;\n viewTable: string;\n listLabel: string;\n gridCaption: string;\n count: PluralMessage;\n open: string;\n emptyHeading: string;\n emptyBody: string;\n key: string;\n title: string;\n status: string;\n priority: string;\n assignee: string;\n sprint: string;\n due: string;\n };\n sprints: {\n heading: string;\n hint: string;\n readOnlyClosed: string;\n new: string;\n start: string;\n close: string;\n state: Record<'planned' | 'active' | 'closed', string>;\n /** `{name}`. */\n closeHeading: string;\n closeMessage: string;\n /** `{name}`. */\n deleteHeading: string;\n deleteMessage: string;\n newHeading: string;\n editHeading: string;\n name: string;\n nameRequired: string;\n goal: string;\n start_date: string;\n end_date: string;\n datesRequired: string;\n datesOrder: string;\n capacity: string;\n activeExists: string;\n /** `{key}`, `{target}`. */\n moved: string;\n /** `{name}`. */\n progressHeading: string;\n done: string;\n committed: string;\n capacityUse: string;\n /** `{name}`. */\n burndownCaption: string;\n day: string;\n ideal: string;\n remaining: string;\n closed: string;\n };\n schedule: {\n heading: string;\n label: string;\n hint: string;\n milestones: string;\n newMilestone: string;\n milestoneTitle: string;\n milestoneDate: string;\n milestoneRequired: string;\n /** `{title}`. */\n removeMilestone: string;\n /** `{key}`. */\n rescheduled: string;\n /** `{key}`, `{list}`. */\n conflicts: string;\n workloadHeading: string;\n workloadLabel: string;\n /** `{capacity}`. */\n workloadHint: string;\n /** `{date}`. */\n week: string;\n noPeople: string;\n };\n risks: {\n heading: string;\n label: string;\n hint: string;\n new: string;\n newHeading: string;\n editHeading: string;\n title: string;\n titleRequired: string;\n owner: string;\n status: string;\n mitigation: string;\n deleteHeading: string;\n statuses: Record<'identified' | 'mitigating' | 'closed', string>;\n /** A tarefa do risco (todo risco é de uma tarefa). */\n task: string;\n taskPlaceholder: string;\n taskRequired: string;\n /** Risco criado antes de o risco ser de uma tarefa. */\n noTask: string;\n /** Nota de risco da tarefa (coluna, selo do cartão). */\n level: string;\n /** As faixas da nota (as de `riskLevel`: até 4, até 9, até 16, acima). */\n levels: Record<'low' | 'medium' | 'high' | 'critical', string>;\n /** Seção \"Riscos\" no detalhe da tarefa. */\n ofTask: string;\n add: string;\n empty: string;\n };\n workflow: {\n heading: string;\n hint: string;\n label: string;\n /** `{count}` no quadro, na descrição de cada status. */\n count: PluralMessage;\n plan: string;\n start: string;\n finish: string;\n refuse: string;\n reopen: string;\n };\n detail: {\n estimate: string;\n sprint: string;\n backlogOption: string;\n dependsOn: string;\n dependsOnPlaceholder: string;\n dependencyCycle: string;\n /** `{list}`: chaves das tarefas abertas de que esta depende. */\n blockedBy: string;\n };\n };\n };\n}\n\nexport const SPINE_MESSAGES_PT_BR: SpineMessages = {\n meta: { locale: 'pt-BR' },\n inbox: {\n title: 'Notificações',\n button: { zero: 'Notificações', one: 'Notificações, {count} nova', other: 'Notificações, {count} novas' },\n empty: 'Nada novo por aqui.',\n error: 'Não foi possível carregar as notificações.',\n retry: 'Tentar de novo',\n news: { one: '{count} novidade', other: '{count} novidades' },\n },\n header: {\n home: 'Início',\n apps: 'Aplicações',\n themeDark: 'Tema escuro',\n themeLight: 'Tema claro',\n densityComfortable: 'Densidade confortável',\n densityCompact: 'Densidade compacta',\n fullscreen: 'Tela cheia',\n exitFullscreen: 'Sair da tela cheia',\n user: 'Usuário',\n accessLevels: 'Níveis de acesso',\n settings: 'Configurações',\n appearance: 'Aparência',\n shortcuts: 'Atalhos de teclado',\n news: 'Novidades',\n newsUnseen: '{label} ({count})',\n logout: 'Sair',\n search: 'Busca',\n searchPlaceholder: 'Buscar módulo ou página…',\n searchFavorites: 'Favoritos',\n searchRecent: 'Abertos há pouco',\n searchModules: 'Módulos',\n searchScreens: 'Telas',\n },\n navigation: {\n back: 'Voltar',\n home: 'Início',\n favorite: 'Favoritar esta página',\n unfavorite: 'Remover dos favoritos',\n copyLink: 'Copiar link da página',\n linkCopied: 'Link copiado!',\n },\n sidebar: {\n modules: 'Módulos',\n moduleNavigation: 'Navegação de {module}',\n apps: 'Aplicações',\n openInNewTab: 'Abrir em nova aba',\n },\n pageBar: {\n favorite: 'Favoritar esta página',\n unfavorite: 'Remover dos favoritos',\n copyLink: 'Copiar link da página',\n linkCopied: 'Link copiado',\n docs: 'Documentação desta tela',\n trail: 'Você está em',\n },\n pagePanel: {\n notFoundTitle: 'Não encontramos esta página',\n notFoundText: 'O endereço não existe mais. Feche a aba e abra a página pelo menu.',\n },\n docs: {\n heading: 'Documentação',\n index: 'Índice da documentação',\n search: 'Buscar na documentação',\n noMatch: 'Nenhuma página encontrada com esse termo.',\n empty: 'Nenhuma tela com documentação ainda.',\n view: 'Visão da documentação',\n usage: 'Como usar',\n technical: 'Especificação técnica',\n loading: 'Carregando a documentação',\n loadError: 'Não foi possível carregar esta documentação.',\n invite: 'Escolha uma página no índice para ler a documentação dela.',\n },\n news: {\n heading: 'Novidades',\n close: 'Fechar',\n unseen: 'Nova',\n toastOne: 'Novidade: {title}',\n toastMany: '{count} novidades',\n see: 'Ver',\n loading: 'Carregando as novidades…',\n empty: 'Nenhuma novidade por enquanto.',\n loadError: 'Não foi possível carregar as novidades.',\n retry: 'Tentar de novo',\n pages: 'Lista de novidades',\n search: 'Buscar novidades',\n searchPlaceholder: 'Buscar novidades…',\n filters: 'Filtrar novidades',\n filterAll: 'Todas',\n filterUnread: 'Não lidas',\n filterFavorites: 'Favoritas',\n favorite: 'Favoritar \"{title}\"',\n unfavorite: 'Tirar \"{title}\" das favoritas',\n noResults: 'Nenhuma novidade encontrada.',\n home: 'Início',\n changes: 'O que mudou',\n before: 'Antes',\n after: 'Agora',\n markUnread: 'Marcar como não lida',\n gotIt: 'Entendi',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementação',\n kindAlteracao: 'Alteração',\n publishedOn: 'Publicada em {date}',\n editedOn: 'Editada em {date}',\n body: 'Texto da novidade',\n detailError: 'Não foi possível abrir esta novidade. Ela pode ter saído do ar.',\n },\n autoServiceNews: {\n caption: 'Novidades do app',\n empty: 'Nenhuma novidade cadastrada. Quem entra no app vê aqui o que mudou.',\n newNews: 'Nova novidade',\n editNews: 'Editar novidade',\n newNewsIntro: 'Preencha as informações da novidade que será exibida para os usuários.',\n editNewsIntro: 'Atualize as informações da novidade que será exibida para os usuários.',\n sectionMain: 'Informações principais',\n sectionMainHint: 'O título e o resumo aparecem na lista de novidades e no card do Início.',\n sectionBody: 'Conteúdo da novidade',\n sectionBodyHint: 'Descreva os detalhes da novidade. Use formatação, listas, links e destaque informações importantes.',\n sectionPublish: 'Publicação',\n sectionUntil: 'Validade (opcional)',\n sectionAudience: 'Público',\n preview: 'Pré-visualização no Início',\n previewTitle: 'Título da novidade',\n previewSummary: 'O resumo aparece aqui.',\n previewNow: 'Publicada ao salvar',\n tipTitle: 'Dica:',\n tipText: 'título curto e resumo direto chamam mais atenção no Início.',\n untilDate: 'Último dia em que aparece',\n audienceGroups: 'Grupos',\n kind: 'Tipo de publicação',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementação',\n kindAlteracao: 'Alteração',\n sectionBodyHintImpl: 'Uma introdução curta, se quiser, e a lista do que há de novo.',\n sectionBodyHintAlt: 'Mostre como era antes e como ficou agora. A introdução é opcional.',\n intro: 'Introdução (opcional)',\n items: 'O que mudou',\n itemsHint: 'Uma mudança por item, até 300 caracteres. De 1 a 30 itens.',\n itemPlaceholder: 'Descreva uma mudança',\n itemsEmpty: 'Nenhuma mudança na lista ainda.',\n before: 'Antes',\n after: 'Agora',\n colTitle: 'Título',\n colPublishedAt: 'Publicação',\n colUntil: 'Validade',\n colAudience: 'Público',\n colAuthor: 'Autor',\n colStatus: 'Situação',\n statusScheduled: 'Agendada',\n statusPublished: 'Publicada',\n statusExpired: 'Vencida',\n audienceAll: 'Todos',\n noUntil: 'Sem fim',\n title: 'Título',\n summary: 'Resumo',\n summaryHint: 'Escreva um resumo curto e direto. Até 300 caracteres.',\n body: 'Texto',\n bodyHint: 'Abre quando a pessoa clica na novidade.',\n publishDate: 'Data da publicação',\n publishTime: 'Hora da publicação',\n publishHint: 'No futuro, a novidade fica agendada. Sem data, ela é publicada imediatamente.',\n until: 'Validade',\n untilHint: 'Se não informar, a novidade não expira.',\n audience: 'Público',\n audienceHint: 'Grupos com acesso ao app. Sem grupo, todos que entram no app veem.',\n confirmDeleteHeading: 'Excluir novidade',\n confirmDelete: 'Excluir a novidade \"{title}\"? Ela some para todo mundo, inclusive para quem ainda não viu.',\n saveError: 'Não foi possível salvar a novidade.',\n loadError: 'Não foi possível carregar as novidades.',\n errors: {\n invalidTitle: 'Informe um título de até 140 caracteres.',\n invalidSummary: 'O resumo tem até 300 caracteres.',\n bodyTooLarge: 'O texto passou do limite de 64 KB.',\n invalidPublishedAt: 'Data ou hora da publicação inválida.',\n invalidUntil: 'Data de validade inválida.',\n invalidGroupIds: 'Algum grupo do público não tem mais acesso ao app. Revise o público.',\n untilBeforePublish: 'A validade não pode terminar antes da publicação.',\n invalidKind: 'Tipo de publicação inválido.',\n invalidItems: 'A implementação precisa de 1 a 30 mudanças, de até 300 caracteres cada.',\n invalidCompare: 'A alteração precisa do antes e do agora.',\n compareTooLarge: 'O antes ou o agora passou do limite de 32 KB.',\n },\n },\n setup: {\n label: 'Configuração inicial',\n step: 'Etapa {current} de {total}',\n skip: 'Pular',\n back: 'Voltar',\n next: 'Continuar',\n finish: 'Começar',\n close: 'Entendi',\n greeting: 'Olá, {name}. Deixe do seu jeito.',\n greetingAnonymous: 'Deixe do seu jeito.',\n appearanceIntro: 'Escolha como os sistemas aparecem para você. A escolha vale em todos eles e pode ser mudada quando quiser, nas configurações.',\n preview: 'Prévia',\n previewPage: 'Início',\n essentialsTitle: 'O essencial',\n essentialsIntro: 'Quatro coisas que ajudam no dia a dia.',\n searchTitle: 'Busque qualquer tela',\n searchText: 'Pressione {key} ou use a busca do cabeçalho para achar telas, favoritos e o que você abriu há pouco.',\n tabsTitle: 'Abas e painéis',\n tabsText: 'Cada tela abre numa aba. Arraste a aba para um lado da área de trabalho para ver duas telas juntas.',\n favoritesTitle: 'Favoritos',\n favoritesText: 'Marque o coração de uma tela para ela aparecer no início e no topo da busca.',\n settingsTitle: 'Configurações',\n settingsText: 'Aparência, região, acessibilidade e segurança da conta ficam no menu do seu perfil, ou em {key}.',\n },\n shortcuts: {\n heading: 'Atalhos de teclado',\n hint: 'Dica: pressione {key} a qualquer momento para reabrir este painel.',\n essentials: 'Rever o essencial',\n dismiss: 'Entendi',\n openSearch: 'Abrir a busca rápida',\n goHome: 'Ir para a Home',\n goFavorite: 'Ir para o favorito nº 1 a 9',\n history: 'Voltar / avançar no histórico',\n openSettings: 'Abrir as configurações',\n toggleSidebar: 'Abrir / recolher o menu lateral',\n toggleTheme: 'Alternar tema claro / escuro',\n fullscreen: 'Tela cheia',\n logout: 'Sair (logout)',\n showHelp: 'Mostrar este painel de atalhos',\n closeOverlay: 'Fechar modal / painel aberto',\n },\n settings: {\n heading: 'Configurações',\n appearance: 'Aparência',\n appearanceKeywords: 'visual cores tema layout',\n theme: 'Tema',\n themeDescription: 'Claro, escuro ou o do sistema operacional.',\n themeKeywords: 'modo escuro dark light noturno',\n themeLight: 'Claro',\n themeDark: 'Escuro',\n themeSystem: 'Sistema',\n accent: 'Cor principal',\n accentDescription: 'Família de cores do cabeçalho, dos botões e dos destaques.',\n accentKeywords: 'família paleta cor accent',\n density: 'Densidade',\n densityDescription: 'Compacta mostra mais informação na tela.',\n densityKeywords: 'espaçamento tamanho compacto',\n comfortable: 'Confortável',\n compact: 'Compacta',\n font: 'Fonte',\n fontDescription: 'Família de letra de todo o aplicativo.',\n fontKeywords: 'tipografia letra texto roboto rubik figtree geist',\n sidebar: 'Menu lateral',\n sidebarDescription: 'Como o menu lateral abre e fecha.',\n sidebarKeywords: 'sidebar navegação barra lateral',\n sidebarHelp: 'Automático: abre ao aproximar o ponteiro. Fixo: fica sempre aberto. Compacto: mostra só os ícones.',\n splitTabs: 'Dividir abas',\n splitTabsDescription: 'Abrir painéis lado a lado ou um abaixo do outro, cada um com suas abas. Desligado, as abas abertas ficam num painel só.',\n splitTabsKeywords: 'dividir tela painéis lado a lado abas comparar split',\n sidebarAuto: 'Automático',\n sidebarFixed: 'Fixo',\n sidebarCompact: 'Compacto',\n region: 'Região',\n regionKeywords: 'idioma língua localização horário data hora semana',\n language: 'Idioma',\n languageDescription: 'Vale na hora, sem recarregar.',\n languageKeywords: 'língua language idioma tradução inglês espanhol português',\n languageAuto: 'Padrão do sistema ({language})',\n timeZone: 'Fuso horário',\n timeZoneKeywords: 'timezone hora utc gmt',\n timeZoneHint: 'Para datas e horários. Agora: {now}',\n timeZoneAuto: 'Automático ({zone})',\n hourCycle: 'Formato de hora',\n hourCycleHint: 'Agora: {now}',\n hourCycleKeywords: 'relógio 24h 12h am pm horário',\n hourCycleAuto: 'Automático',\n hourCycle24: '24 horas',\n hourCycle12: '12 horas',\n weekStart: 'Primeiro dia da semana',\n weekStartDescription: 'Para calendários e seletores de data.',\n weekStartKeywords: 'semana calendário domingo segunda',\n weekStartAuto: 'Automático',\n shortcuts: 'Atalhos',\n shortcutsDescription: 'Pressione ? em qualquer tela para ver esta lista.',\n shortcutsKeywords: 'teclado teclas',\n setup: 'Configuração inicial',\n setupDescription: 'Abre de novo a escolha de aparência do primeiro acesso.',\n setupKeywords: 'configuração inicial primeiro acesso aparência boas-vindas',\n redoSetup: 'Refazer',\n essentials: 'O essencial',\n essentialsDescription: 'Busca, abas, favoritos e configurações em um resumo.',\n essentialsKeywords: 'ajuda dicas busca abas favoritos apresentação',\n showEssentials: 'Ver',\n accessibility: 'Acessibilidade',\n accessibilityKeywords: 'acessibilidade leitura visão',\n textSize: 'Tamanho do texto',\n textSizeDescription: 'Aumenta o texto e os controles de todas as telas.',\n textSizeKeywords: 'zoom fonte letra maior ampliar',\n motion: 'Reduzir animações',\n motionDescription: 'Sistema segue o computador ou o celular.',\n motionKeywords: 'animação movimento transição reduced motion enjoo tontura',\n motionSystem: 'Sistema',\n motionReduce: 'Sempre',\n motionFull: 'Nunca',\n help: 'Ajuda',\n helpKeywords: 'ajuda novidades configuração inicial essencial apresentação',\n news: 'Novidades',\n newsDescription: 'O que mudou nas últimas versões.',\n newsKeywords: 'novidades versão lançamento changelog',\n showNews: 'Ver novidades',\n browserData: 'Dados do navegador',\n browserDataDescription: 'Guardados só neste navegador, para a sua conta.',\n browserDataKeywords: 'privacidade limpar apagar histórico dados',\n recentPages: 'Páginas recentes',\n recentPagesKeywords: 'histórico visitadas recentes',\n recentSearches: 'Buscas recentes',\n recentSearchesKeywords: 'busca pesquisa histórico',\n favorites: 'Favoritos',\n favoritesKeywords: 'favoritos estrela',\n pagesCount: { zero: 'Nenhuma página guardada', one: '{count} página guardada', other: '{count} páginas guardadas' },\n searchesCount: { zero: 'Nenhuma busca guardada', one: '{count} busca guardada', other: '{count} buscas guardadas' },\n clear: 'Limpar',\n confirmClear: 'Confirmar',\n cancel: 'Cancelar',\n recentPagesCleared: 'Páginas recentes apagadas.',\n recentSearchesCleared: 'Buscas recentes apagadas.',\n favoritesCleared: 'Favoritos apagados.',\n restorePreferences: 'Preferências',\n restorePreferencesDescription: 'Aparência, acessibilidade e formatos voltam ao padrão.',\n restorePreferencesHelp: 'Voltam ao padrão: tema, cor principal, densidade, fonte, menu lateral, dividir abas, tamanho do texto, animações, formato de hora e primeiro dia da semana. Idioma, fuso horário e atalhos de tecla única ficam como estão.',\n restorePreferencesKeywords: 'restaurar padrão redefinir reset preferências',\n restore: 'Restaurar padrão',\n confirmRestore: 'Confirmar',\n preferencesRestored: 'Preferências restauradas.',\n account: 'Conta',\n accountKeywords: 'perfil usuário login nível sair',\n user: 'Usuário',\n accessLevel: 'Nível de acesso',\n accessLevelKeywords: 'crachá badge perfil permissão grupo',\n session: 'Sessão',\n sessionDescription: 'Renovada sozinha enquanto a aplicação estiver aberta.',\n sessionKeywords: 'expiração token login',\n sessionUnknown: 'Não informado',\n sessionExpired: 'Expirada às {time}',\n sessionExpiresIn: 'Expira em {minutes} min (às {time})',\n sessionExpiresAt: 'Expira às {time}',\n accessToken: 'Token de acesso',\n accessTokenDescription: 'Para testar uma API em seu nome. Não compartilhe.',\n accessTokenKeywords: 'jwt bearer api desenvolvedor',\n copy: 'Copiar',\n moreAbout: 'Mais sobre {label}',\n appTokens: 'Tokens de aplicação',\n appTokensDescription: 'Para usar a aplicação fora da interface: um MCP, um script.',\n appTokensKeywords: 'token app mcp api chave pat x-app-token automação script integração',\n appTokensHelp: 'O token vale só para esta aplicação, com as permissões do nível de acesso escolhido, e expira em no máximo 1 ano. Envie no cabeçalho x-app-token.',\n groups: 'Grupos',\n groupsDescription: 'Os grupos desta aplicação de que você participa. Escolha um para ver os membros.',\n groupsKeywords: 'grupo grupos membros equipe pessoas função administrador editor membro incluir remover acesso',\n groupRole: 'Sua função: {role} · Crachá: {badge}',\n groupRoleDisabled: 'Sua função: {role} · Grupo desativado',\n logout: 'Sair',\n logoutDescription: 'Encerra a sessão neste navegador.',\n logoutKeywords: 'logout desconectar',\n mfa: 'MFA',\n mfaDescription: 'Verificação em duas etapas da sua conta no Argos.',\n mfaKeywords: 'segurança argos senha autenticação mfa 2fa dois fatores duas etapas verificação',\n signedInAccount: 'Conta no Argos',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Verificação em duas etapas',\n twoFactorDescription: 'Um código além da senha para entrar.',\n twoFactorKeywords: 'mfa 2fa totp autenticador authenticator código e-mail método aparelho celular',\n recoveryCodes: 'Códigos de recuperação',\n recoveryCodesDescription: 'Para entrar se você perder o aparelho.',\n recoveryCodesKeywords: 'backup recuperação perdi celular aparelho mfa 2fa',\n sessions: 'Sessões e dispositivos',\n sessionsDescription: 'Onde a sua conta está conectada.',\n sessionsKeywords: 'dispositivos navegador ip encerrar desconectar sair aparelhos conectados',\n sessionsSection: 'Sessões',\n sessionsSectionDescription: 'Esta sessão, os tokens de aplicação e os dispositivos conectados.',\n sessionsSectionKeywords: 'sessão sessões token tokens dispositivos login segurança',\n about: 'Sobre',\n aboutKeywords: 'versão build ambiente dependências suporte',\n application: 'Aplicação',\n version: 'Versão',\n versionKeywords: 'release',\n buildDate: 'Data do build',\n environment: 'Ambiente',\n environmentKeywords: 'homologação produção',\n links: 'Links',\n linksKeywords: 'repositório documentação bug issue',\n docs: 'Documentação',\n reportIssue: 'Reportar problema',\n repository: 'Repositório',\n dependencies: 'Dependências',\n dependenciesDescription: 'Versões declaradas no package.json desta aplicação.',\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Informações para suporte',\n supportInfoDescription: 'Versão, ambiente, navegador e preferências, para colar no chamado.',\n supportInfoKeywords: 'ajuda chamado diagnóstico',\n noSessionToken: 'Nenhum token de sessão disponível.',\n tokenCopied: 'Token copiado. Não compartilhe: ele dá acesso à sua conta até expirar.',\n supportCopied: 'Informações copiadas. Cole no chamado de suporte.',\n copyBlocked: 'Não foi possível copiar. O navegador bloqueou o acesso à área de transferência.',\n },\n support: {\n application: 'Aplicação',\n version: 'Versão',\n build: 'Build',\n environment: 'Ambiente',\n page: 'Página',\n browser: 'Navegador',\n screen: 'Tela',\n theme: 'Tema',\n themeValue: '{theme} ({mode}) · família {family} · densidade {density} · fonte {font}',\n timeZone: 'Fuso',\n accessLevel: 'Nível de acesso',\n date: 'Data',\n },\n appTokens: {\n unavailable: 'Indisponível neste aplicativo: ele não está ligado ao argos-admin.',\n created: 'Token \"{name}\" criado — copie agora, ele não será mostrado de novo.',\n sendHeader: 'Envie no cabeçalho <code>x-app-token</code>. Vale até {date}, com as permissões do nível de acesso escolhido.',\n copyToken: 'Copiar token',\n saved: 'Já guardei',\n loading: 'Carregando…',\n expiredOn: 'Expirado em {date}',\n expiresOn: 'Expira em {date}',\n lastUsed: 'Último uso: {date}',\n never: 'nunca',\n revoke: 'Revogar',\n confirmRevoke: 'Confirmar revogação',\n empty: 'Você ainda não tem tokens nesta aplicação.',\n noBadges: 'Você não tem nenhum nível de acesso nesta aplicação para gerar tokens.',\n appOnly: 'Aplicação: <strong>{name}</strong> — o token só vale para ela.',\n accessLevel: 'Nível de acesso',\n name: 'Nome',\n namePlaceholder: 'Ex.: MCP do Claude no notebook',\n nameRequired: 'Dê um nome para reconhecer o token depois.',\n nameMax: 'Até 80 caracteres.',\n validity: 'Validade',\n days30: '30 dias',\n days90: '90 dias',\n months6: '6 meses',\n year1: '1 ano',\n create: 'Criar token',\n cancel: 'Cancelar',\n newToken: 'Novo token',\n validCount: '{valid} de {max} válidos',\n limit: 'Limite atingido: revogue um token para criar outro.',\n loadError: 'Não foi possível carregar seus tokens.',\n badgesError: 'Não foi possível carregar seus níveis de acesso.',\n createError: 'Não foi possível criar o token.',\n copied: 'Token copiado.',\n copyFailed: 'Não foi possível copiar. Selecione o texto e copie manualmente.',\n revoked: 'Token \"{name}\" revogado. Pode levar até 2 minutos para parar de funcionar em todos os sistemas.',\n revokeError: 'Não foi possível revogar o token.',\n },\n myGroups: {\n loading: 'Carregando…',\n loadError: 'Não foi possível carregar os membros do grupo.',\n roleAdministrator: 'Administrador',\n roleEditor: 'Editor',\n roleMember: 'Membro',\n listLabel: 'Seus grupos',\n back: 'Voltar aos grupos',\n you: 'você',\n membersCount: { zero: 'Nenhum membro', one: '{count} membro', other: '{count} membros' },\n matchesCount: { zero: 'Nenhum membro encontrado', one: '{count} membro encontrado', other: '{count} membros encontrados' },\n empty: 'Nenhum membro neste grupo.',\n noMatches: 'Nenhum membro encontrado para essa busca.',\n filterMembers: 'Buscar membro',\n loadingProgress: 'Carregando membros… {loaded} de {total}',\n partialResults: 'A lista ainda está carregando: o resultado pode crescer.',\n loadIncomplete: 'Não foi possível carregar todos os membros ({loaded} de {total}).',\n retry: 'Tentar de novo',\n readOnly: 'Como membro, você só vê quem está no grupo.',\n addMember: 'Incluir membro',\n addHeading: 'Incluir em {group}',\n search: 'Pessoa',\n searchPlaceholder: 'Nome, login ou e-mail',\n searchHint: 'Digite ao menos 2 letras.',\n searching: 'Buscando…',\n noResults: 'Ninguém encontrado.',\n searchError: 'Não foi possível buscar pessoas.',\n alreadyMember: 'já é membro',\n role: 'Função',\n editorAddsMembers: 'Como Editor, você inclui pessoas como Membro.',\n add: 'Incluir',\n cancel: 'Cancelar',\n added: '{name} entrou no grupo.',\n addError: 'Não foi possível incluir o membro.',\n roleOf: 'Função de {name}',\n roleChanged: 'Função de {name}: {role}.',\n roleError: 'Não foi possível trocar a função.',\n remove: 'Remover',\n confirmRemove: 'Confirmar remoção',\n removed: '{name} saiu do grupo.',\n removeError: 'Não foi possível remover o membro.',\n },\n accountSecurity: {\n loading: 'Carregando…',\n loadError: 'Não foi possível carregar a sua conta no Argos.',\n retry: 'Tentar novamente',\n methodTotp: 'Aplicativo autenticador',\n methodEmail: 'E-mail',\n methodSms: 'SMS',\n active: 'Ativo',\n activeWithDetail: 'Ativo · {detail}',\n notRegistered: 'Não cadastrado',\n unavailable: 'Indisponível',\n requiredHint: 'Obrigatória neste ambiente: mantenha pelo menos um método.',\n add: 'Adicionar',\n replaceDevice: 'Trocar aparelho',\n remove: 'Remover',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n removeTitle: 'Remover {method}?',\n removeHint: 'Você deixa de poder usar este método para entrar.',\n removeLastHint: 'Sem nenhum método, os códigos de recuperação também deixam de valer.',\n reauthTitle: 'Confirme sua identidade',\n reauthHint: 'Por segurança, confirme antes de continuar. Vale por 5 minutos.',\n reauthHow: 'Como confirmar',\n reauthPassword: 'Senha',\n reauthRecoveryCode: 'Código de recuperação',\n currentPassword: 'Senha atual',\n passwordRequired: 'Informe a senha.',\n recoveryCode: 'Código de recuperação',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Informe o código.',\n recoveryCodeLength: 'O código tem 10 letras e números.',\n sendEmailCode: 'Enviar código para o e-mail cadastrado',\n sixDigitCode: 'Código de 6 dígitos',\n totpTitle: 'Escaneie o QR Code no aplicativo autenticador',\n qrAlt: 'QR Code para configurar o aplicativo autenticador',\n manualKey: 'Sem câmera? Digite a chave:',\n appCode: 'Código do aplicativo',\n emailTitle: 'Cadastrar e-mail',\n email: 'E-mail',\n emailPlaceholder: 'nome@empresa.com',\n emailRequired: 'Informe o e-mail.',\n emailInvalid: 'Informe um e-mail válido.',\n sendCode: 'Enviar código',\n emailCodeTitle: 'Confirme o e-mail',\n emailCodeHint: 'Digite o código de 6 dígitos enviado para {email}.',\n codesRemaining: { zero: 'Nenhum código disponível', one: '1 código disponível', other: '{count} códigos disponíveis' },\n codesHint: 'Cada um vale uma vez. Gerar novos invalida os anteriores.',\n codesNeedMethod: 'Cadastre um método de verificação para gerar códigos de recuperação.',\n generateCodes: 'Gerar códigos',\n regenerateCodes: 'Gerar novos códigos',\n codesTitle: 'Seus códigos de recuperação',\n codesShownOnce: 'Guarde num lugar seguro: eles não serão mostrados de novo. Cada um vale uma vez.',\n copyCodes: 'Copiar',\n downloadCodes: 'Baixar .txt',\n codesCopied: 'Códigos copiados.',\n copyFailed: 'Não foi possível copiar. Selecione os códigos e copie manualmente.',\n codesSaved: 'Guardei os códigos',\n codesFileHeader: 'Códigos de recuperação do Argos (cada um vale uma vez)',\n codesFileName: 'codigos-de-recuperacao.txt',\n notices: {\n methodAdded: 'Método cadastrado.',\n deviceReplaced: 'Aparelho trocado. O anterior não gera mais códigos válidos.',\n methodRemoved: 'Método removido.',\n codesRegenerated: 'Códigos de recuperação gerados. Os anteriores não valem mais.',\n reauthCodeSent: 'Enviamos um código para o e-mail cadastrado.',\n },\n errors: {\n generic: 'Não foi possível concluir. Tente novamente.',\n network: 'Não foi possível falar com o Argos. Verifique a conexão e tente novamente.',\n login_required: 'A sessão deste login terminou no Argos. Entre de novo para gerenciar a conta.',\n invalid_token: 'A sessão deste login terminou no Argos. Entre de novo para gerenciar a conta.',\n reauthentication_required: 'A confirmação de identidade venceu. Confirme de novo para continuar.',\n invalid_password: 'Senha incorreta.',\n account_locked: 'Muitas tentativas com a senha. A conta ficou bloqueada por alguns minutos.',\n invalid_code: 'Código incorreto.',\n invalid_recovery_code: 'Código de recuperação inválido ou já usado.',\n code_expired: 'O código venceu. Peça outro.',\n code_not_requested: 'Peça o código antes de digitá-lo.',\n too_many_attempts: 'Muitas tentativas. Espere alguns minutos e tente de novo.',\n too_many_requests: 'Espere um pouco antes de pedir outro código.',\n mfa_method_not_allowed: 'Este método não é aceito neste ambiente.',\n mfa_method_not_found: 'Este método já não estava cadastrado.',\n mfa_last_method: 'A verificação em duas etapas é obrigatória: mantenha pelo menos um método.',\n invalid_email: 'Informe um e-mail válido.',\n enrollment_not_started: 'O cadastro venceu. Comece de novo.',\n sms_not_available: 'SMS indisponível.',\n mfa_required_for_recovery_codes: 'Cadastre um método de verificação antes de gerar códigos.',\n session_not_found: 'A sessão já tinha sido encerrada.',\n },\n sessionsEmpty: 'Nenhuma sessão ativa.',\n thisSession: 'Esta sessão',\n thisBrowser: 'Este navegador',\n appsOnly: 'Só aplicativos',\n sessionDetail: 'IP {ip} · último uso {date}',\n unknownIp: 'desconhecido',\n sessionSince: 'Desde {date}',\n sessionApps: 'Aplicativos: {apps}',\n unnamedApp: 'Aplicativo',\n endSession: 'Encerrar',\n confirmEndSession: 'Confirmar encerramento',\n endOthers: 'Encerrar todas as outras',\n endOthersConfirm: {\n one: 'Encerrar a outra sessão? Os aplicativos abertos nela vão pedir login de novo.',\n other: 'Encerrar as {count} outras sessões? Os aplicativos abertos nelas vão pedir login de novo.',\n },\n sessionEndedNotice: 'Sessão encerrada.',\n othersEndedNotice: { zero: 'Nenhuma sessão encerrada.', one: '1 sessão encerrada.', other: '{count} sessões encerradas.' },\n },\n ratings: {\n rateScreen: 'Avaliar esta tela',\n rateApp: 'Avaliar o {app}',\n ratedApp: 'Sua avaliação do {app}',\n heading: 'Faça sua avaliação',\n subheading: 'Aproveite para deixar sua opinião',\n aboutScreen: 'Tela: {screen}',\n aboutApp: 'O {app} como um todo',\n score: 'Sua nota',\n scoreOf: '{value} de 10',\n scoreNamed: '{value} de 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Ruim', 2: 'Regular', 3: 'Bom', 4: 'Muito bom', 5: 'Excelente' },\n noScore: 'Sem nota',\n scaleHint: 'De 0 a 10: cada estrela vale 2 e meia estrela, 1. As setas mudam de meia em meia; clicar de novo na primeira meia estrela dá 0.',\n comment: 'Comentário',\n commentPlaceholder: 'O que funcionou, o que poderia melhorar (opcional)',\n submit: 'Avaliar',\n update: 'Atualizar',\n previous: 'Você avaliou em {date}. Pode mudar quando quiser.',\n scoreRequired: 'Escolha uma nota de 0 a 10.',\n loading: 'Carregando a sua avaliação…',\n thanks: 'Obrigado pela avaliação!',\n updated: 'Avaliação atualizada. Obrigado!',\n saveError: 'Não foi possível enviar a avaliação. Tente de novo.',\n period: 'Período',\n periods: { all: 'Tudo', d7: '7 dias', d30: '30 dias', d90: '90 dias' },\n refresh: 'Atualizar',\n appCard: 'A ferramenta',\n screensCard: 'As telas',\n appCardHint: 'Avaliação geral',\n screensCardHint: 'Avaliação geral das telas',\n scoreMax: '/10',\n average: 'Média',\n total: { zero: 'Nenhuma avaliação', one: '1 avaliação', other: '{count} avaliações' },\n comments: { zero: 'nenhum comentário', one: '1 comentário', other: '{count} comentários' },\n noRatings: 'Ainda não há avaliações no período.',\n distribution: 'Distribuição das notas',\n distributionRow: 'Nota {score}: {count} ({share})',\n ranking: 'Avaliações por tela e área',\n rankingHint: 'Compare as telas. Clique numa para ver as avaliações dela.',\n sort: 'Ordem',\n sorts: { worst: 'Piores primeiro', best: 'Melhores primeiro', most: 'Mais avaliadas' },\n noScreens: 'Nenhuma tela avaliada no período.',\n filterByScreen: 'Ver as avaliações de {screen}',\n recent: 'Avaliações recentes',\n recentHint: 'Da mais nova para a mais antiga.',\n filterScope: 'O que foi avaliado',\n allScopes: 'Ferramenta e telas',\n tool: 'A ferramenta',\n screens: 'As telas',\n filterScreen: 'Tela',\n allScreens: 'Todas as telas',\n filterScore: 'Nota',\n allScores: 'Todas as notas',\n withComment: 'Mostrar apenas com comentário',\n clearFilters: 'Limpar filtros',\n noComment: 'Sem comentário.',\n itemActions: 'Ações da avaliação',\n copyComment: 'Copiar comentário',\n commentCopied: 'Comentário copiado.',\n copyFailed: 'Não foi possível copiar o comentário.',\n showAppRatings: 'Ver avaliações da ferramenta',\n showScreenRatings: 'Ver avaliações desta tela',\n emptyList: 'Nenhuma avaliação com esses filtros.',\n pagination: 'Páginas das avaliações',\n unknownUser: 'Usuário',\n loadError: 'Não foi possível carregar as avaliações.',\n forbidden: 'Você não administra esta aplicação, ou está sem o crachá Administrador ativo.',\n updatedAt: 'Atualizado em {date} às {time}',\n details: 'Ver detalhes',\n detailsOf: '(avaliações de {name})',\n tabScreens: 'Telas',\n tabAreas: 'Áreas',\n tabTrends: 'Tendências',\n viewAll: 'Ver todas as avaliações',\n allHeading: 'Todas as avaliações',\n justNow: 'Agora há pouco',\n yesterdayAt: 'Ontem às {time}',\n dateAt: '{date} às {time}',\n sortsShort: { worst: 'Piores', best: 'Melhores', most: 'Mais avaliadas' },\n bands: { all: 'Todas as notas', bad: 'Ruins (abaixo de 5)', mid: 'Médias (5 a 6,9)', good: 'Boas (7 ou mais)' },\n bandFilter: 'Faixa da nota',\n filterArea: 'Área',\n allAreas: 'Todas as áreas',\n noArea: 'Sem área',\n filterByArea: 'Ver as telas de {area}',\n screensCount: { one: '1 tela', other: '{count} telas' },\n searchScreens: 'Buscar tela ou caminho…',\n searchScreensLabel: 'Buscar tela',\n searchAreas: 'Buscar área…',\n searchAreasLabel: 'Buscar área',\n tableEmpty: 'Nenhuma tela com esses filtros.',\n areasEmpty: 'Nenhuma área com esses filtros.',\n colScreen: 'Tela',\n colArea: 'Área',\n colScreens: 'Telas',\n colScore: 'Nota',\n colTotal: 'Avaliações',\n colComments: 'Comentários',\n colTrend: 'Tendência',\n colOpen: 'Abrir',\n tablePagination: 'Páginas das telas',\n areasPagination: 'Páginas das áreas',\n trendOf: 'Média por semana: de {first} para {last}',\n trendNone: 'Sem notas por semana no período.',\n trendCaption: 'Média por semana, de 0 a 10',\n trendEmpty: 'Sem avaliações no período para mostrar a tendência.',\n trendValue: '{series} {value}',\n trendWeek: 'Semana de {week}: {values} ({count})',\n aboutRating: 'Avaliação',\n aboutRatingKeywords: 'avaliar nota estrelas média opinião',\n rateAction: 'Avaliar',\n noRatingsYet: 'Ainda sem avaliações.',\n loadingAverage: 'Carregando a média…',\n averageError: 'Não foi possível carregar a média.',\n },\n notification: {\n genericError: 'Ocorreu um erro no processamento de sua solicitação.',\n },\n graphql: {\n noResponse: 'O serviço não respondeu.',\n serviceFailure: 'Falha no serviço.',\n done: 'Operação concluída.',\n failed: 'Não foi possível concluir a operação.',\n },\n access: {\n blockedText:\n 'Você não faz parte de nenhum grupo desta aplicação. Peça ao administrador dela para incluir você em um grupo e entre novamente.',\n blockedAction: 'Sair',\n noRightsText: 'Você não tem acesso a nenhuma página desta aplicação. Fale com o administrador dela para pedir acesso.',\n },\n session: {\n offline: 'Sem conexão com o servidor de autenticação. Você continua conectado; tentando reconectar…',\n reconnecting: 'Reconectando…',\n reauthorizing: 'Renovando sua sessão…',\n reauthorizationRequired: 'Sua sessão precisa ser confirmada. Nada do que está aberto será perdido.',\n signInAgain: 'Entrar novamente',\n callbackFailedHeading: 'Não foi possível concluir a entrada',\n callbackFailedText: 'O retorno do login veio incompleto ou expirou. Entre novamente para continuar.',\n logoutFailed: 'Não foi possível sair agora. Verifique a conexão e tente de novo.',\n },\n routing: {\n notPublished: 'Este endereço existe no seu acesso, mas a tela dele ainda não foi publicada.',\n notPublishedCode:\n 'Este endereço existe no seu acesso, mas a tela dele ainda não foi publicada. Informe o código {code} à equipe do Acropole.',\n },\n home: {\n noAccessTitle: 'Você ainda não tem acesso a nenhuma tela',\n noAccessText:\n 'O acesso é liberado pelo administrador da aplicação ou pelo administrador de um grupo com acesso a ela. Se ele já liberou, saia e entre de novo.',\n yourScreens: 'Suas telas',\n modules: 'Acesso rápido',\n privileged: 'Acesso privilegiado',\n recent: 'Continuar de onde parou',\n recentCaption: 'As telas que você abriu por último, da mais recente para a mais antiga.',\n screenCount: { one: '1 tela', other: '{count} telas' },\n favorite: 'Favoritar {name}',\n unfavorite: 'Remover {name} dos favoritos',\n favorites: 'Favoritos',\n morning: 'Bom dia',\n afternoon: 'Boa tarde',\n evening: 'Boa noite',\n greetingName: '{greeting}, {name}',\n intro: 'Acesse suas ferramentas e acompanhe as atualizações dos seus sistemas.',\n seeAll: 'Ver tudo',\n seeLess: 'Ver menos',\n recentActions: 'Mais ações para {name}',\n forgetRecent: 'Remover do histórico',\n explore: 'Explorar sistemas',\n exploreIntro: 'Acesse os principais módulos da plataforma.',\n news: 'Novidades',\n newsBadge: 'Atualizações',\n newsAll: 'Ver todas',\n favoritesEmpty: 'Toque no coração da barra de uma tela para ela aparecer aqui.',\n help: 'Ajuda e recursos',\n shortcuts: 'Atalhos do teclado',\n essentials: 'Rever o essencial',\n settings: 'Configurações',\n systemDocs: 'Documentação do sistema',\n },\n autoService: {\n loading: 'Carregando...',\n cancel: 'Cancelar',\n save: 'Salvar',\n create: 'Criar',\n edit: 'Editar',\n remove: 'Remover',\n search: 'Consultar',\n active: 'Ativo',\n inactive: 'Inativo',\n confirmChanges: 'Confirmar alterações',\n appsTitle: 'Aplicações',\n clientSections: 'Seções do cliente',\n tabRoutes: 'Rotas',\n tabRouters: 'Roteadores',\n tabAccess: 'Acesso',\n noClients:\n 'Você não administra este app. É preciso (a) estar no grupo de administração do projeto dele e (b) estar logado com o crachá <strong>Administrador</strong> ativo. Troque de crachá no menu do seu perfil, se disponível, ou peça acesso a quem administra o projeto.',\n clientsLoadError: 'Não foi possível carregar os clients que você administra (HTTP {status}). Isso não é falta de permissão: o Argos não respondeu. Tente de novo em instantes.',\n retryLoad: 'Tentar de novo',\n pickClient: 'Selecione o client que deseja administrar',\n pickGroup: 'Selecione um grupo',\n noDescription: 'Sem descrição cadastrada.',\n manageMembers: 'Gerenciar membros',\n membersCaption: 'Membros do grupo',\n noMembers: 'Nenhum membro neste grupo.',\n colUser: 'Usuário',\n colMemberSince: 'Membro desde',\n membersHeading: 'Membros — {group}',\n addUser: 'Adicionar usuário',\n userSearch: 'Buscar por nome, username ou email...',\n role: 'Função (opcional)',\n noRole: 'Membro (sem função)',\n add: 'Adicionar',\n suggestions: 'Sugestões',\n suggestionsHint: 'Quem já está em outros grupos deste sistema',\n suggestionGroups: 'Em {groups}',\n addSuggestion: 'Adicionar {name} ao grupo',\n membersTitle: 'Membros do grupo',\n memberSearch: 'Buscar membro...',\n membersOf: 'Membros do grupo {group}',\n noMembersShort: 'Nenhum membro.',\n noMembersMatch: 'Nenhum membro encontrado para essa busca.',\n membersLoadingProgress: 'Carregando membros… {loaded} de {total}',\n membersPartialResults: 'A lista e a busca ainda podem crescer.',\n membersLoadIncomplete: 'Não foi possível carregar todos os membros ({loaded} de {total}).',\n newMember: 'Novo',\n addedBy: 'por {user}',\n removal: 'Remoção',\n removalEmpty: 'Marque membros na lista para removê-los do grupo. A remoção só vale ao salvar.',\n undoRemoval: 'Desfazer remoção',\n saveChanges: 'Salvar alterações',\n colRole: 'Função',\n colAddedAt: 'Adicionado em',\n newAccess: 'Novo acesso',\n newAccessHeading: 'Novo acesso',\n accessCaption: 'Acessos do client',\n noAccess: 'Nenhum acesso concedido ainda.',\n colGroup: 'Grupo',\n manageRoutes: 'Gerenciar rotas',\n group: 'Grupo',\n routesOf: 'Rotas de {group}',\n noPrivateRoutes: 'Nenhuma rota privada disponível pro badge deste grupo.',\n register: 'Cadastrar',\n secretCreated: 'Aplicação criada. Salve o secret agora, ele não será exibido novamente:',\n pickApp: 'Selecione uma aplicação',\n disable: 'Desativar',\n enable: 'Ativar',\n delete: 'Excluir',\n appSections: 'Seções da aplicação',\n tabOperations: 'Operações',\n tabAccesses: 'Acessos',\n editApp: 'Editar aplicação',\n newApp: 'Nova aplicação',\n name: 'Nome',\n grants: 'Grants (separados por vírgula)',\n appAccessCaption: 'Acessos da aplicação',\n noAppAccess: 'Nenhum grupo com acesso a esta aplicação ainda.',\n colType: 'Tipo',\n manageOperations: 'Gerenciar operações',\n colOperations: 'Operações',\n colGuards: 'Guards',\n colMembers: 'Membros',\n filterOperations: 'Filtrar operações',\n filterRoutes: 'Filtrar rotas',\n noFilterMatch: 'Nada encontrado para “{term}”.',\n routesTreeLabel: 'Rotas privadas',\n operationsOf: 'Operações de {group}',\n noOperations: 'Nenhuma operação registrada para esta aplicação ainda.',\n operationsCaption: 'Operações registradas',\n colIdentifier: 'Identificador',\n colMethod: 'Método',\n colLevel: 'Nível',\n colDescription: 'Descrição',\n colAllowedGroups: 'Grupos permitidos',\n groupCount: { one: '1 grupo', other: '{count} grupos' },\n newRouter: 'Novo roteador',\n routersCaption: 'Roteadores do client',\n noRouters: 'Nenhum roteador cadastrado ainda.',\n private: 'Privado',\n public: 'Público',\n editRouter: 'Editar roteador',\n page: 'Página (obrigatório)',\n hierarchy: 'Hierarquia (opcional)',\n levelHeader: 'Header',\n levelNavigation: 'Navegação',\n levelMenu: 'Menu',\n levelItem: 'Item',\n levelSubmenu: 'Submenu',\n privateHint: 'Privado (exige access + guard pra ser visível)',\n routerDescription: 'Descrição',\n routerDescriptionHint: 'O que a tela faz, em uma frase. Aparece abaixo do título, na barra da página. Em roteador herdado de template, o texto do template prevalece no próximo sync.',\n colPage: 'Página',\n colBuiltPath: 'Caminho',\n colVisibility: 'Visibilidade',\n colAllowedBadges: 'Crachás permitidos',\n anyBadge: 'Qualquer crachá',\n allowedBadgesHint: 'Vazio = qualquer crachá. Com um ou mais escolhidos, só os grupos com um desses crachás podem receber acesso a esta tela na aba Acesso.',\n newRoute: 'Nova rota',\n routesCaption: 'Rotas do client',\n noRoutes: 'Nenhuma rota cadastrada ainda.',\n editRoute: 'Editar rota',\n internalName: 'Nome interno',\n displayName: 'Nome de exibição',\n icon: 'Ícone',\n iconPlaceholder: 'ex.: home',\n path: 'Caminho (path)',\n info: 'Info',\n excludable: 'Excluível',\n excludableLocked: 'Rota protegida: só a administração central do Argos pode liberar a exclusão.',\n templateTag: 'Template',\n templateLocked: 'Veio do template da aplicação: só a administração central do Argos edita ou exclui.',\n pathPlaceholder: 'ex.: dashboard',\n pathHint: 'Um trecho só do endereço: letras minúsculas e hífen. O \"/\" entre níveis é o roteador que monta.',\n pathInvalid: 'Use só letras minúsculas (a–z) e hífen, sem \"/\", espaço, número ou acento, e sem hífen no início ou no fim.',\n optionalId: 'ID (opcional)',\n optionalIdPlaceholder: 'gerado automaticamente',\n optionalIdHint: 'Para manter homologação e produção com o mesmo id, cole o id do outro ambiente; vazio = gerado.',\n optionalIdInvalid: 'Informe um UUID (ex.: 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) ou deixe vazio.',\n idTaken: 'Já existe um cadastro com este id. Use outro ou deixe o campo vazio.',\n rotateSecret: 'Gerar novo segredo',\n confirmRotateSecretHeading: 'Gerar um novo segredo?',\n confirmRotateSecret: 'O segredo atual deixa de funcionar na hora; atualize o APP_SECRET do serviço que usa esta aplicação. Tokens já emitidos valem até expirar (até 1 hora).',\n rotatedSecretHeading: 'Novo segredo de {name}',\n rotatedSecretWarning: 'Copie agora: o segredo não será mostrado de novo.',\n rotatedSecretNote: 'O servidor guarda só um hash do segredo. Ao fechar esta janela não há como consultá-lo; se ele se perder, gere outro.',\n rotatedSecretLabel: 'Segredo da aplicação {name}',\n copySecret: 'Copiar',\n secretCopied: 'Segredo copiado.',\n rotatedSecretDone: 'Concluir',\n rotateSecretError: 'Não foi possível gerar o novo segredo. Tente de novo.',\n rotateSecretNotFound: 'Aplicação não encontrada neste client.',\n rotateSecretForbidden: 'Você não administra este client.',\n confirmDeleteAppHeading: 'Excluir aplicação?',\n confirmDeleteApp: 'A aplicação {name} será excluída e a credencial dela para de funcionar. Esta ação não pode ser desfeita.',\n confirmDeleteRouteHeading: 'Excluir rota?',\n confirmDeleteRoute: 'A rota {name} será excluída deste cliente. Esta ação não pode ser desfeita.',\n confirmDeleteRouterHeading: 'Excluir roteador?',\n confirmDeleteRouter: 'O roteador {path} será excluído e a página sai do menu. Esta ação não pode ser desfeita.',\n confirmRemoveAccessHeading: 'Remover acesso?',\n confirmRemoveAccess: 'O grupo {group} perde o acesso às rotas privadas deste cliente.',\n confirmRemoveConsumerHeading: 'Remover acesso à aplicação?',\n confirmRemoveConsumer: 'O grupo {group} deixa de consumir esta aplicação e perde as permissões de operação dela.',\n deleteDone: 'Exclusão concluída.',\n deleteError: 'Não foi possível excluir. Tente de novo.',\n colExcludable: 'Excluível',\n excludableYes: 'Sim',\n excludableNo: 'Não',\n colName: 'Nome',\n colDisplay: 'Display',\n colIcon: 'Ícone',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copiar o ID da rota {name}',\n copyRouterId: 'Copiar o ID do roteador {name}',\n idCopied: 'ID copiado',\n reorder: 'Reordenar',\n reorderTitle: 'Reordenar menu',\n reorderHint: 'Mude a ordem em que os itens aparecem no menu do app: arraste pela alça (ou, no teclado, Espaço na alça e as setas) ou use os botões de subir e descer. Para ordenar o que fica dentro de um item, entre nele.',\n reorderPath: 'Nível do menu',\n reorderRoot: 'Topo do menu',\n reorderListLabel: 'Ordem em {name}',\n reorderEmpty: 'Nenhum roteador cadastrado para ordenar.',\n moveUp: 'Mover {name} para cima',\n moveDown: 'Mover {name} para baixo',\n openLevel: 'Ordenar o que fica dentro de {name}',\n childCount: { one: '1 item dentro', other: '{count} itens dentro' },\n movedTo: '{name}: posição {position} de {total}',\n reorderLoadError: 'Não foi possível carregar o menu. Tente de novo.',\n reorderSaveError: 'Não foi possível salvar a ordem. Nada foi perdido: tente de novo.',\n reorderSave: 'Salvar ordem',\n newGroup: 'Novo grupo',\n editGroup: 'Editar grupo',\n noGroups: 'Nenhum grupo cadastrado ainda.',\n accessLevel: 'Nível de acesso',\n pickAccessLevel: 'Selecione o nível',\n noLevel: 'Sem nível',\n noGroupsOfLevel: 'Nenhum grupo neste nível.',\n colStatus: 'Status',\n groupName: 'Nome',\n groupType: 'Tipo',\n groupTypePlaceholder: 'Selecione o tipo',\n groupDescription: 'Descrição (opcional)',\n confirmDeleteGroupHeading: 'Excluir grupo?',\n confirmDeleteGroup:\n 'O grupo {name} será excluído junto com os membros, os acessos a telas e as permissões em aplicações. Esta ação não pode ser desfeita.',\n groupSaveError: 'Não foi possível salvar o grupo. Tente de novo.',\n membersSaveError: 'Não foi possível salvar todas as alterações dos membros. Confira a lista e tente de novo.',\n noApps: 'Nenhuma aplicação cadastrada ainda.',\n tabTokens: 'Tokens',\n tokensCaption: 'Tokens da aplicação',\n noTokens: 'Nenhum token criado para esta aplicação ainda.',\n newToken: 'Novo token',\n colTokenPrefix: 'Início do token',\n colExpiresAt: 'Expira em',\n colLastUsed: 'Último uso',\n tokenExpired: 'Expirado',\n tokenRevoked: 'Revogado',\n neverUsed: 'Nunca',\n revokeToken: 'Revogar',\n confirmRevokeTokenHeading: 'Revogar token?',\n confirmRevokeToken: 'O token {name} deixa de funcionar na hora. A revogação não pode ser desfeita.',\n tokenRevokedDone: 'Token {name} revogado.',\n tokenRevokeError: 'Não foi possível revogar o token. Tente de novo.',\n tokensLoadError: 'Não foi possível carregar os tokens da aplicação.',\n tokenName: 'Nome',\n tokenDescription: 'Descrição (opcional)',\n tokenExpiresAt: 'Expira em',\n tokenExpiresHint: 'De amanhã até 365 dias a partir de hoje.',\n tokenExpiresInvalid: 'Escolha uma data entre amanhã e 365 dias a partir de hoje.',\n tokenOperations: 'Operações liberadas ao token',\n tokenOperationsNote: 'Nada vem marcado: o token não tem login, então marque as operações protected e private que ele pode chamar. As public não precisam de token.',\n freeForAll: 'liberada para todos',\n freeForAuthenticated: 'liberada para autenticados',\n freeNoPermission: 'não depende de permissão',\n publicNoToken: 'pública: não precisa de token',\n createToken: 'Criar token',\n tokenSaveError: 'Não foi possível criar o token. Tente de novo.',\n tokenCreatedHeading: 'Token {name} criado',\n tokenCreatedWarning: 'Copie agora: o token não será mostrado de novo.',\n tokenCreatedNote: 'Envie no cabeçalho x-api-token. O servidor guarda só um hash do token; se ele se perder, revogue e crie outro.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copiar',\n tokenCopied: 'Token copiado.',\n hierarchyHint: 'De cima para baixo: Navegação só com Header, Menu só com Navegação, Item só com Menu e Submenu só com Item. Limpar um nível limpa os de baixo.',\n routerSaveError: 'Não foi possível salvar o roteador. Tente de novo.',\n permissionsSaveError: 'Não foi possível salvar todas as alterações das operações. Reabra o painel e confira.',\n permissionsSummaryGroup: '{marked} de {total} operações protegidas liberadas para o grupo.',\n permissionsSummaryToken: '{marked} de {total} operações liberadas para o token.',\n permissionsFreeGroup: {\n one: '1 operação não depende de permissão (public ou private) e aparece marcada.',\n other: '{count} operações não dependem de permissão (public ou private) e aparecem marcadas.',\n },\n permissionsFreeToken: {\n one: '1 operação public não precisa de token e não pode ser liberada.',\n other: '{count} operações public não precisam de token e não podem ser liberadas.',\n },\n permissionsFolderCount: '{marked} de {total}',\n permissionsTreeLabel: 'Operações',\n tokenErrors: {\n invalidExpiresAt: 'Data de validade inválida. Escolha outra data.',\n invalidValidity: 'A validade precisa ficar entre amanhã e 365 dias a partir de hoje.',\n invalidOperationIds: 'Alguma operação escolhida não existe mais nesta aplicação. Reabra o formulário e escolha de novo.',\n operationNotProtected: 'Só operações protected podem ser liberadas a um grupo; as public e private já valem para ele.',\n operationPublic: 'Operação pública não precisa de token e não pode ser liberada a ele. Desmarque-a e tente de novo.',\n appNotFound: 'Aplicação não encontrada neste client. Ela pode ter sido excluída.',\n tokenNotFound: 'Token não encontrado nesta aplicação. Ele pode já ter sido revogado.',\n },\n routerErrors: {\n hierarchyGap: 'A hierarquia tem um nível vazio no meio: cada nível precisa do de cima (Header → Navegação → Menu → Item → Submenu). Preencha o nível que falta ou limpe os de baixo.',\n invalidAllowedTypes: 'Algum crachá escolhido não existe mais. Revise os crachás permitidos.',\n },\n groupErrors: {\n invalidType: 'Esse tipo de grupo não existe mais. Escolha outro tipo.',\n adminTypeReserved: 'O tipo Administrador é só do grupo de administração do projeto.',\n emptyUpdate: 'Nada para salvar: nenhum campo foi alterado.',\n groupProjectImmutable: 'O grupo não muda de projeto.',\n groupNameTaken: 'Já existe um grupo com esse nome neste projeto.',\n adminGroupImmutable: 'O grupo de administração não muda de nome, de tipo nem é desativado.',\n adminGroupProtected: 'O grupo de administração do projeto não pode ser excluído.',\n adminGroupLastMember: 'O grupo de administração não pode ficar sem membros.',\n adminGroupAccessProtected: 'O acesso do grupo de administração a este app não pode ser removido.',\n groupNotFound: 'Grupo não encontrado neste projeto. Ele pode ter sido excluído.',\n },\n },\n autoServiceAudit: {\n title: 'Auditoria',\n period: 'Período',\n periodLastHour: 'Última hora',\n period24h: 'Últimas 24 horas',\n period7d: 'Últimos 7 dias',\n period30d: 'Últimos 30 dias',\n periodFromFilters: 'O período vem das datas escolhidas nos filtros.',\n filters: 'Filtros da auditoria',\n filterDates: 'Datas',\n filterApp: 'Aplicação',\n filterUser: 'Usuário',\n filterOperation: 'Operação',\n filterMethod: 'Método',\n filterOutcome: 'Resultado',\n filterEntry: 'Só ações do usuário',\n userPlaceholder: 'Nome do usuário',\n operationPlaceholder: 'Identificador ou nome da operação',\n methodRead: 'Leitura',\n methodWrite: 'Escrita',\n methodDelete: 'Exclusão',\n methodStream: 'Fluxo contínuo',\n outcomeSuccess: 'Sucesso',\n outcomeFailure: 'Falha',\n outcomeDenied: 'Negado',\n kpiTotal: 'Eventos',\n kpiTotalDescription: 'Tudo o que foi registrado no período.',\n kpiFailures: 'Falhas',\n kpiDenied: 'Negados',\n kpiShare: '{percent} do total',\n kpis: 'Resumo do período',\n timeline: 'Linha do tempo',\n timelineSummary: 'Eventos por intervalo, de {from} a {to}.',\n bucketSummary: '{time}: {total} eventos, {failures} falhas, {denied} negados',\n timelineEmpty: 'Sem eventos para desenhar no período.',\n topOperations: 'Operações mais chamadas',\n topUsers: 'Usuários mais ativos',\n topApps: 'Por aplicação',\n noTop: 'Nada no período.',\n failureCount: { one: '1 falha', other: '{count} falhas' },\n deniedCount: { one: '1 negado', other: '{count} negados' },\n filterBy: 'Filtrar por {name}',\n eventsCaption: 'Eventos do período, do mais recente para o mais antigo',\n colWhen: 'Quando',\n colApp: 'Aplicação',\n colUser: 'Usuário',\n colOperation: 'Operação',\n colMethod: 'Método',\n colOutcome: 'Resultado',\n colStatus: 'HTTP',\n colDuration: 'Duração',\n durationMs: '{ms} ms',\n pageItems: 'eventos',\n pageSize: 'por página',\n pageError: 'Não foi possível carregar esta página de eventos. Tente de novo.',\n loading: 'Carregando a auditoria…',\n emptyTitle: 'Nenhum evento no período',\n emptyText: 'Amplie o período ou tire filtros para ver mais.',\n clearFilters: 'Limpar filtros',\n errorTitle: 'Não foi possível carregar a auditoria',\n errorText: 'O servidor não respondeu como esperado. Tente de novo em instantes.',\n retry: 'Tentar de novo',\n rangeTooLarge: 'O período máximo é de 31 dias. Escolha datas mais próximas.',\n forbidden: 'Você não tem acesso à auditoria de uma das aplicações escolhidas.',\n anonymous: 'Sem usuário',\n detailHeading: 'Detalhe do evento',\n detailLoading: 'Carregando o detalhe completo…',\n detailError: 'Não foi possível carregar o detalhe completo; mostrando o resumo.',\n fieldWhen: 'Quando',\n fieldApp: 'Aplicação',\n fieldUser: 'Usuário',\n fieldActor: 'Tipo de ator',\n fieldIp: 'IP de origem',\n fieldOperation: 'Operação',\n fieldIdentifier: 'Identificador',\n fieldMethod: 'Método',\n fieldLevel: 'Nível',\n fieldPermission: 'Permissão',\n fieldOutcome: 'Resultado',\n fieldStatus: 'Status HTTP',\n fieldDuration: 'Duração',\n fieldRoute: 'Rota',\n fieldTarget: 'Alvo',\n fieldOrigin: 'Origem',\n originEntry: 'Ação do usuário',\n originInternal: 'Chamada entre aplicações',\n fieldTrace: 'Trace',\n fieldEventId: 'ID do evento',\n fieldMessage: 'Mensagem',\n fieldReceivedAt: 'Recebido em',\n fieldInstance: 'Instância do serviço',\n fieldSdk: 'SDK',\n fieldDetails: 'Detalhes',\n viewTrace: 'Ver cadeia (trace)',\n traceHeading: 'Cadeia da ação',\n traceLoading: 'Carregando a cadeia…',\n traceError: 'Não foi possível carregar a cadeia.',\n traceEmpty: 'Nenhum evento desta cadeia está nas aplicações do seu projeto.',\n traceHidden: {\n one: '1 evento desta cadeia é de uma aplicação fora do seu projeto e não aparece aqui.',\n other: '{count} eventos desta cadeia são de aplicações fora do seu projeto e não aparecem aqui.',\n },\n period6h: 'Últimas 6 horas',\n refresh: 'Atualizar',\n autoRefresh: 'Atualizar a cada 30 s',\n updatedAt: 'Atualizado às {time}',\n updating: 'Atualizando…',\n filterUserId: 'ID do usuário',\n filterLevel: 'Nível',\n filterPermission: 'Permissão',\n filterActor: 'Tipo de ator',\n filterStatus: 'Status HTTP',\n filterTrace: 'Trace',\n userIdPlaceholder: 'UUID do usuário',\n statusPlaceholder: 'Ex.: 403',\n tracePlaceholder: '32 caracteres hexadecimais',\n levelPublic: 'Pública',\n levelPrivate: 'Privada',\n levelProtected: 'Protegida',\n levelOptional: 'Opcional',\n permissionAllowed: 'Permitido',\n permissionForbidden: 'Proibido',\n permissionUnauthorized: 'Não autenticado',\n permissionPublic: 'Pública',\n actorUser: 'Usuário',\n actorAppToken: 'Token de aplicação',\n actorApiToken: 'Token de API',\n actorPublic: 'Público',\n actorUnauthenticated: 'Não autenticado',\n forbiddenAdmin: 'Sua conta não tem a permissão de leitura da auditoria. Peça a um administrador as operações admin:audit:*.',\n invalidFilter: 'Algum filtro tem um valor inválido. {detail}',\n kpiFilterHint: '{share} · clique para filtrar',\n topsRange: '{from}–{to} de {total}',\n topsPrevious: 'Página anterior de {name}',\n topsNext: 'Próxima página de {name}',\n topsError: 'Não foi possível carregar esta lista.',\n filterByTrace: 'Filtrar a tabela por este trace',\n unitLabel: 'Ver por',\n unitActions: 'Ações',\n unitEvents: 'Eventos',\n kpiTotalActions: 'Ações',\n kpiTotalActionsDescription: 'Cada ação conta uma vez, com todas as etapas entre aplicações; o resultado é o pior entre elas.',\n timelineSummaryActions: 'Ações por intervalo, de {from} a {to}.',\n bucketSummaryActions: '{time}: {total} ações, {failures} com falha, {denied} negadas',\n timelineEmptyActions: 'Sem ações para desenhar no período.',\n actionsCaption: 'Ações do período, da mais recente para a mais antiga',\n pageItemsActions: 'ações',\n pageErrorActions: 'Não foi possível carregar esta página de ações. Tente de novo.',\n emptyTitleActions: 'Nenhuma ação no período',\n colSpans: 'Spans',\n spansApps: 'Aplicações: {apps}',\n spansHidden: {\n one: 'mais 1 span de aplicação fora do seu projeto',\n other: 'mais {count} spans de aplicações fora do seu projeto',\n },\n actionDetailHeading: 'Detalhe da ação',\n orphanNote: 'A entrada desta ação não está no período (ou não foi registrada): ela aparece a partir da primeira chamada entre aplicações.',\n orphanTag: 'sem entrada',\n spansHeading: 'Spans da ação',\n spansSummary: '{count} spans em {duration}',\n spanRow: '{app}, {operation}: {outcome}, começa em +{offset}, dura {duration}',\n },\n loginAttempts: {\n refresh: 'Atualizar',\n user: 'Usuário',\n userPlaceholder: 'Usuário, e-mail ou identificador digitado',\n period: 'Período',\n result: 'Resultado',\n method: 'Método',\n all: 'Todos',\n clear: 'Limpar',\n advancedFilters: 'Filtros avançados',\n ip: 'IP ou rede',\n ipPlaceholder: '10.0.0.5 ou 10.0.0.0/8',\n ipHint: 'IP exato ou rede em notação CIDR.',\n reason: 'Motivo',\n caption: 'Tentativas de login',\n pageItems: 'tentativas',\n pageSize: 'Tentativas por página',\n colDate: 'Data/hora',\n colResult: 'Resultado',\n colMethod: 'Método',\n colUser: 'Usuário',\n colReason: 'Motivo',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Navegador',\n filterByIp: 'Filtrar por este IP',\n filterByUser: 'Filtrar por este usuário',\n noMatchingUser: 'sem usuário correspondente',\n methods: { local: 'Senha', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Sucesso', failure: 'Falha', cancelled: 'Cancelada' },\n reasons: {\n bad_password: 'Senha incorreta',\n unknown_user: 'Usuário inexistente ou inativo',\n locked: 'Conta bloqueada por tentativas',\n mfa_failed: 'Código de verificação incorreto',\n mfa_expired: 'Código de verificação vencido',\n mfa_not_allowed: 'Método de verificação não permitido',\n mfa_invalid_method: 'Método de verificação desconhecido',\n recovery_failed: 'Código de recuperação incorreto ou já usado',\n recovery_refused: 'Código de recuperação recusado',\n not_linked: 'Conta externa não vinculada',\n wrong_realm: 'Usuário de outro realm',\n },\n forbiddenAdmin: 'Sua conta não pode consultar as tentativas de login. Peça a um administrador a operação admin:attempts:list.',\n forbiddenClient: 'Só o grupo de administração do projeto, com o crachá Administrador ativo, vê as tentativas de login desta aplicação.',\n loadErrorDetail: 'Não foi possível carregar as tentativas: {detail}',\n loadError: 'Não foi possível carregar as tentativas de login.',\n },\n accountFeatures: {\n aiAgent: 'Conectar um agente de IA',\n aiAgentDescription: 'Gera o token e a configuração MCP para colar no Claude Code.',\n aiAgentKeywords: 'ia agente claude mcp assistente llm automação',\n aiAgentHelp: 'O agente usa um token de aplicação pessoal (x-app-token) com as permissões do nível de acesso escolhido. Revogue em \"Tokens de aplicação\" quando não precisar mais.',\n aiAgentStart: 'Conectar agente',\n aiAgentServers: 'Servidores MCP',\n aiAgentAccess: 'Acesso do agente',\n aiAgentReadOnly: 'Só leitura',\n aiAgentReadWrite: 'Leitura e escrita',\n aiAgentWriteHint: 'O agente poderá alterar dados em seu nome. Prefira só leitura quando bastar.',\n aiAgentReadOnlyServer: '{name} (só leitura)',\n aiAgentTokenName: 'Agente de IA ({date})',\n aiAgentGenerate: 'Gerar configuração',\n aiAgentSelectServer: 'Escolha pelo menos um servidor.',\n aiAgentResult: 'Configuração pronta',\n aiAgentResultHint: 'Cole em .mcp.json, na raiz do projeto (Claude Code). O token aparece só agora: copie antes de concluir. Vale até {date}.',\n aiAgentCopy: 'Copiar configuração',\n aiAgentCopied: 'Configuração copiada. Não compartilhe: ela contém o seu token.',\n aiAgentDone: 'Concluir',\n aiAgentCreateError: 'Não foi possível gerar o token do agente.',\n aiAgentUnavailable: 'Indisponível neste aplicativo: ele não está ligado ao argos-admin.',\n activity: 'Atividade da conta',\n activityDescription: 'Entradas e tentativas que falharam nos últimos 90 dias.',\n activityKeywords: 'login entrada acesso histórico tentativa falha ip navegador segurança',\n activityFilter: 'Mostrar',\n activityAll: 'Todas',\n activityFailures: 'Só falhas',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Aplicativo: {app}',\n activityEmpty: 'Nada nos últimos 90 dias.',\n activityMore: 'Carregar mais',\n activityShowing: '{shown} de {total}',\n activityLoadError: 'Não foi possível carregar a atividade da conta.',\n unknownIp: 'desconhecido',\n unknownApp: 'sem nome',\n idle: 'Encerrar por inatividade',\n idleDescription: 'Sai sozinho depois de um tempo sem uso, com um aviso antes.',\n idleKeywords: 'inatividade ocioso tempo sair automático logout segurança bloqueio',\n idleNever: 'Nunca',\n idleOption: '{minutes} min',\n idleLimitHint: 'Esta aplicação encerra a sessão em no máximo {minutes} min sem uso.',\n idleWarningHeading: 'A sessão vai ser encerrada',\n idleWarningText: { one: 'Nenhuma atividade há algum tempo. A sessão termina em {count} segundo.', other: 'Nenhuma atividade há algum tempo. A sessão termina em {count} segundos.' },\n idleStay: 'Continuar conectado',\n idleLogout: 'Sair agora',\n startPage: 'Tela inicial',\n startPageDescription: 'Onde a aplicação abre depois do login.',\n startPageKeywords: 'início home abertura login favorito última tela',\n startHome: 'Início',\n startLast: 'Última tela visitada',\n startFavorite: 'Favorito: {name}',\n startPageHint: 'Marque telas como favoritas para abrir numa delas.',\n defaultBadge: 'Crachá padrão',\n defaultBadgeDescription: 'Nível de acesso com que você entra nesta aplicação, em qualquer navegador.',\n defaultBadgeKeywords: 'crachá badge nível acesso perfil padrão login',\n defaultBadgeAuto: 'Automático (o de menor nível)',\n defaultBadgeSaved: 'Crachá padrão salvo. Vale a partir do próximo login.',\n defaultBadgeError: 'Não foi possível salvar o crachá padrão.',\n defaultBadgeLoadError: 'Não foi possível carregar os seus crachás.',\n notices: 'Notificações',\n noticesDescription: 'Os avisos que esta aplicação mostra.',\n noticesKeywords: 'notificação aviso alerta navegador push',\n browserNotices: 'Avisos do navegador',\n browserNoticesDescription: 'Aviso do sistema quando a aba está em segundo plano.',\n browserNoticesDenied: 'O navegador bloqueou as notificações deste site. Libere nas configurações do navegador.',\n browserNoticesUnsupported: 'Este navegador não mostra notificações.',\n noticeOpen: 'Abrir',\n sync: 'Preferências na conta',\n syncDescription: 'Aparência, região, favoritos e as demais preferências acompanham você em qualquer navegador.',\n syncKeywords: 'sincronizar nuvem conta navegador preferências backup',\n syncSynced: 'Sincronizado às {time}',\n syncSaving: 'Salvando…',\n syncLocal: 'Só neste navegador: a conta não está disponível.',\n syncError: 'Não foi possível sincronizar. Tente de novo.',\n syncNow: 'Sincronizar agora',\n },\n suggestions: {\n button: 'Sugerir melhoria',\n buttonHint: 'Sugerir uma melhoria para esta tela',\n modalTitle: 'Sugerir melhoria',\n intro: 'Conte o que facilitaria o seu trabalho. Quem administra a aplicação recebe o pedido e responde por aqui.',\n kind: 'Tipo',\n kinds: { melhoria: 'Melhoria', nova_funcionalidade: 'Nova funcionalidade', problema: 'Problema', outro: 'Outro' },\n statuses: {\n em_analise: 'Em análise', planejada: 'Planejada', em_desenvolvimento: 'Em desenvolvimento',\n concluida: 'Concluída', recusada: 'Recusada',\n },\n legacyStatuses: { nova: 'Nova' },\n title: 'Título',\n titlePlaceholder: 'Ex.: Filtrar a lista por data',\n titleRequired: 'Informe um título.',\n description: 'Descrição',\n descriptionHint: 'O que você tentou fazer, o que esperava e por que ajudaria.',\n screen: 'Tela',\n screenHint: 'De onde vem a sugestão. Ajuste se for de outra tela.',\n send: 'Enviar sugestão',\n cancel: 'Cancelar',\n sent: 'Sugestão enviada. Obrigado!',\n sendError: 'Não foi possível enviar a sugestão. Tente de novo.',\n similarHeading: 'Já pediram nesta tela',\n similarHint: 'Se for o mesmo pedido, apoie em vez de repetir.',\n vote: 'Também quero',\n voted: 'Você apoia',\n votes: { one: '{count} apoio', other: '{count} apoios' },\n voteError: 'Não foi possível registrar o apoio.',\n yours: 'Sua',\n mine: 'Minhas sugestões',\n mineEmpty: 'Você ainda não enviou sugestões nesta aplicação.',\n mineError: 'Não foi possível carregar as suas sugestões.',\n loadMore: 'Carregar mais',\n statusFilter: 'Status',\n allStatuses: 'Todos',\n adminReply: 'Resposta da administração',\n sentAt: 'Enviada em {date}',\n boardLabel: 'Quadro de sugestões',\n search: 'Buscar sugestões',\n kindFilter: 'Tipo',\n allKinds: 'Todos os tipos',\n refresh: 'Atualizar',\n boardFiltered: '{shown} de {total} sugestões',\n loadError: 'Não foi possível carregar as sugestões.',\n moveError: 'Não foi possível mover a sugestão. O quadro foi recarregado.',\n removedAuthor: 'Pessoa removida',\n noScreen: 'Sem tela',\n noDescription: 'Sem descrição.',\n requestedBy: 'Pedida por',\n requestedAt: 'Em',\n status: 'Status',\n statusSaved: 'Status atualizado.',\n statusError: 'Não foi possível mudar o status.',\n history: 'Histórico',\n historyEmpty: 'Sem movimentações ainda.',\n eventStatus: '{actor} moveu de {from} para {to}',\n eventComment: '{actor} comentou',\n someone: 'Alguém',\n comment: 'Comentário para quem pediu',\n commentHint: 'Quem pediu vê na página \"Sugestões do app\".',\n commentSend: 'Comentar',\n commentSent: 'Comentário enviado.',\n commentError: 'Não foi possível enviar o comentário.',\n commentRequired: 'Escreva o comentário.',\n viewLabel: 'Visualização',\n viewBoard: 'Quadro',\n viewArchive: 'Arquivo',\n kpis: 'Indicadores das sugestões',\n kpiOpen: 'Em andamento',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Concluídas em {days} dias',\n kpiDoneToday: '+{count} hoje',\n kpiDoneNoneToday: 'Nenhuma concluída hoje',\n kpiOverdueTrend: '+{count} desde ontem',\n kpiOverdueSteady: 'Nenhuma nova desde ontem',\n kpiSoon: 'Vencendo em breve',\n kpiMineHint: 'Abertas com você entre os responsáveis',\n kpiPriority: 'Abertas por prioridade',\n kpiPriorityNone: 'Nenhuma aberta',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Filtros do quadro',\n moreFilters: 'Mais filtros',\n moreFiltersActive: 'Mais filtros ({count})',\n allBoardStatuses: 'Todos os status',\n newTaskIn: 'Nova tarefa em {status}',\n newTaskOptions: 'Criar em outra coluna',\n columnOldest: 'Mais antiga há {age}',\n columnOverdue: { one: '{count} vencida', other: '{count} vencidas' },\n columnEmpty: 'Nenhuma tarefa nesta coluna.',\n columnEmptyFiltered: 'Nenhuma tarefa com estes filtros.',\n columnEmptyHints: {\n em_analise: 'Os pedidos novos chegam aqui para a equipe avaliar.',\n planejada: 'O que já foi aceito e espera a vez de ser feito.',\n em_desenvolvimento: 'O que a equipe está fazendo agora.',\n concluida: 'As entregas dos últimos {days} dias ficam aqui.',\n },\n duration: { days: '{d}d {h}h', hours: '{h}h {m}min', minutes: '{m}min' },\n createdOn: 'Criada em {date}',\n dueWithin: 'No prazo · até {date}',\n dueLateDays: { one: 'Vencida há {count} dia', other: 'Vencida há {count} dias' },\n screenFilter: 'Tela',\n allScreens: 'Todas as telas',\n authorFilter: 'Quem pediu',\n allAuthors: 'Todas as pessoas',\n sort: 'Ordenar',\n sorts: { position: 'Ordem do quadro', votes: 'Mais votadas', recent: 'Mais recentes' },\n sortHint: 'Com esta ordenação, arrastar só muda a coluna (o cartão vai para o fim dela).',\n clearFilters: 'Limpar filtros',\n topVoted: 'Mais votada',\n comments: { one: '{count} comentário', other: '{count} comentários' },\n statusSince: 'Desde {date}',\n openScreen: 'Abrir a tela',\n statusChange: 'Mudar o status',\n statusComment: 'Comentário (opcional)',\n statusCommentHint: 'Vai junto com a mudança; a pessoa vê em \"Minhas sugestões\".',\n statusApply: 'Mudar status',\n archiveLabel: 'Arquivo de sugestões',\n archiveSearch: 'Buscar no arquivo',\n archiveEmpty: 'Nada no arquivo',\n archiveEmptyHint: 'Sugestões recusadas e as concluídas há mais de {days} dias aparecem aqui.',\n archiveCount: { one: '{count} sugestão no arquivo', other: '{count} sugestões no arquivo' },\n closedOn: { concluida: 'Concluída em {date}', recusada: 'Recusada em {date}' },\n pagination: 'Páginas do arquivo',\n reopen: 'Reabrir',\n reopened: 'Sugestão reaberta: voltou para Em análise.',\n reopenError: 'Não foi possível reabrir a sugestão.',\n newTask: 'Nova tarefa',\n addTaskPlaceholder: 'Título da tarefa (Enter cria)',\n taskCreated: 'Tarefa criada.',\n createError: 'Não foi possível criar a tarefa.',\n saveError: 'Não foi possível salvar. Tente de novo.',\n kpiMine: 'Atribuídas a mim',\n kpiOverdue: 'Vencidas',\n assigneeFilter: 'Responsável',\n allAssignees: 'Qualquer responsável',\n assigneeMine: 'Minhas',\n assigneeNone: 'Sem responsável',\n labelFilter: 'Rótulo',\n allLabels: 'Todos os rótulos',\n priorityFilter: 'Prioridade',\n allPriorities: 'Todas as prioridades',\n dueFilter: 'Prazo',\n dueAny: 'Qualquer prazo',\n dueOverdueFilter: 'Vencidas',\n dueSoonFilter: 'Vencem hoje ou amanhã',\n priority: 'Prioridade',\n priorities: { urgente: 'Urgente', alta: 'Alta', media: 'Média', baixa: 'Baixa' },\n dueOn: 'Até {date}',\n dueToday: 'Vence hoje',\n dueTomorrow: 'Vence amanhã',\n dueLate: 'Venceu em {date}',\n checklistSpoken: '{done} de {total} itens feitos',\n moreAssignees: '+{count}',\n cardMenu: 'Ações de {key}',\n menuStatus: 'Alterar status',\n menuAssignMe: 'Atribuir a mim',\n menuCopyLink: 'Copiar link',\n menuCopyKey: 'Copiar chave',\n menuLabel: 'Rótulos',\n menuNoLabels: 'Nenhum rótulo no app',\n menuPriority: 'Prioridade',\n menuArchive: 'Arquivar',\n menuRestore: 'Restaurar no quadro',\n menuDelete: 'Excluir',\n labelColorName: 'Cor {n}',\n linkCopied: 'Link copiado.',\n keyCopied: 'Chave copiada.',\n copyError: 'Não foi possível copiar.',\n deleteHeading: 'Excluir {key}?',\n deleteMessage: 'A tarefa, o checklist, os comentários e as atividades saem de vez. Não dá para desfazer.',\n deleteConfirm: 'Excluir',\n deleted: 'Tarefa excluída.',\n archivedToast: 'Tarefa arquivada: está no Arquivo.',\n restoredToast: 'Tarefa de volta ao quadro.',\n assignedToMe: 'Atribuída a você.',\n archivedTag: 'Arquivada',\n taskLabel: 'Tarefa',\n close: 'Fechar',\n editTitle: 'Editar título',\n editDescription: 'Editar descrição',\n save: 'Salvar',\n checklist: 'Checklist',\n checklistAdd: 'Adicionar item',\n checklistPlaceholder: 'Novo item (Enter adiciona)',\n checklistOnCard: 'Mostrar no cartão',\n checklistEmpty: 'Sem itens ainda.',\n checklistRemove: 'Remover \"{text}\"',\n checklistUp: 'Subir \"{text}\"',\n checklistDown: 'Descer \"{text}\"',\n tabComments: 'Comentários',\n tabActivity: 'Histórico',\n commentsEmpty: 'Sem comentários ainda.',\n activityEmpty: 'Sem atividades ainda.',\n commentInternal: 'Só para a equipe (interno: quem pediu não vê)',\n internalTag: 'Interno',\n activity: {\n created: '{actor} criou a tarefa',\n title: '{actor} renomeou de \"{from}\" para \"{to}\"',\n description: '{actor} editou a descrição',\n kind: '{actor} mudou o tipo de {from} para {to}',\n priority: '{actor} mudou a prioridade de {from} para {to}',\n start_date: '{actor} marcou o início para {to}',\n start_date_removed: '{actor} tirou a data de início',\n due_date: '{actor} marcou a conclusão para {to}',\n due_date_removed: '{actor} tirou a data de conclusão',\n cover: '{actor} trocou a capa',\n cover_removed: '{actor} tirou a capa',\n checklist_on_card: '{actor} mudou o checklist no cartão',\n screen: '{actor} mudou a tela para {to}',\n assignee_added: '{actor} atribuiu a {to}',\n assignee_removed: '{actor} tirou {from} dos responsáveis',\n watcher_added: '{actor} pôs {to} como envolvido',\n watcher_removed: '{actor} tirou {from} dos envolvidos',\n label_added: '{actor} pôs o rótulo {to}',\n label_removed: '{actor} tirou o rótulo {from}',\n checklist_added: '{actor} adicionou \"{to}\" ao checklist',\n checklist_done: '{actor} concluiu \"{to}\"',\n checklist_undone: '{actor} reabriu \"{to}\"',\n checklist_renamed: '{actor} renomeou \"{from}\" para \"{to}\" no checklist',\n checklist_removed: '{actor} removeu \"{from}\" do checklist',\n archived: '{actor} arquivou a tarefa',\n restored: '{actor} restaurou a tarefa no quadro',\n merged: '{actor} agrupou esta em {to}',\n merged_here: '{actor} agrupou {to} aqui',\n unmerged: '{actor} desagrupou esta de {from}',\n unmerged_here: '{actor} desagrupou {from} daqui',\n other: '{actor} alterou a tarefa',\n },\n assignees: 'Responsáveis',\n assignMe: 'Atribuir a mim',\n addAssignee: 'Adicionar responsável',\n watchers: 'Envolvidos',\n addWatcher: 'Adicionar envolvido',\n removePerson: 'Tirar {name}',\n peopleSearch: 'Buscar pessoa',\n peopleEmpty: 'Ninguém encontrado.',\n nobody: 'Ninguém',\n reporter: 'Relator',\n originUser: 'Pedida pela tela',\n originTeam: 'Criada pela equipe',\n startDate: 'Início',\n dueDate: 'Conclusão',\n labels: 'Rótulos',\n addLabel: 'Rótulos',\n createLabel: 'Criar o rótulo \"{name}\"',\n labelColor: 'Cor do rótulo',\n noLabels: 'Sem rótulos',\n screenOrigin: 'Tela de origem',\n votesField: 'Apoios',\n createdAt: 'Criada em',\n updatedAt: 'Atualizada em',\n lastChange: 'Última alteração {when} por {actor}',\n lastChangeNoActor: 'Última alteração {when}',\n key: 'Chave',\n copyKey: 'Copiar a chave',\n newTaskHeading: 'Nova tarefa',\n createTask: 'Criar tarefa',\n draftHint: 'Responsáveis, checklist e comentários ficam disponíveis assim que a tarefa for criada.',\n assignMeOnCreate: 'Atribuir a mim',\n appSuggestions: 'Sugestões do app',\n listView: 'Quais sugestões mostrar',\n tabAll: 'Todas',\n tabMine: 'Minhas',\n appSearch: 'Buscar por título, descrição ou SUG-12',\n thisScreen: 'Desta tela',\n appSorts: { votes: 'Mais apoiadas', recent: 'Recentes' },\n appEmpty: 'Nenhuma sugestão por aqui ainda',\n appEmptyHint: 'Seja a primeira pessoa a sugerir uma melhoria.',\n appEmptyFiltered: 'Nenhuma sugestão com esses filtros.',\n appError: 'Não foi possível carregar as sugestões do app.',\n support: 'Apoiar {count}',\n supported: 'Apoiado {count}',\n ownSupportHint: 'É a sua sugestão: o seu interesse já conta.',\n publicComments: 'Comentários',\n publicCommentsEmpty: 'Ainda sem comentários de quem administra.',\n commentsError: 'Não foi possível carregar os comentários.',\n moreComments: 'Mais comentários',\n appPagination: 'Páginas das sugestões',\n menuMerge: 'Agrupar em…',\n mergeHeading: 'Agrupar {key} em…',\n mergeIntro: 'Escolha a sugestão principal. Quem pediu e quem apoiou esta passam para ela; esta sai do quadro e fica no arquivo, com os comentários.',\n mergeSearch: 'Buscar pela chave ou pelo título',\n mergeNone: 'Nenhuma sugestão aberta para agrupar.',\n mergeHasMerged: 'Outras sugestões estão agrupadas nesta. Desagrupe-as antes de agrupá-la em outra.',\n mergePreview: '{votes} e {reporters} passam para {key}.',\n mergeCalculating: 'Calculando o que passa…',\n mergePreviewError: 'Não foi possível calcular o agrupamento.',\n reportersCount: { one: '{count} relator', other: '{count} relatores' },\n mergeConfirmHeading: 'Agrupar {key} em {target}?',\n mergeConfirmMessage: 'Dá para desfazer depois, em \"Desagrupar\".',\n mergeConfirm: 'Agrupar',\n mergedToast: '{key} agrupada em {target}.',\n mergeError: 'Não foi possível agrupar a sugestão.',\n mergedTag: 'Agrupada',\n mergedInto: 'Agrupada em {key}',\n mergedIntoHint: 'Os apoios e quem pediu estão na principal; os comentários ficam aqui.',\n openMerged: 'Abrir {key}',\n unmerge: 'Desagrupar',\n unmergeLabel: 'Desagrupar {key}',\n unmergedToast: '{key} desagrupada: voltou ao quadro.',\n reporters: 'Relatores',\n reporterAuthor: 'Autor',\n reporterVia: 'via {key}',\n mergedHere: 'Agrupadas aqui',\n mergedFrom: '{key} agrupada em {target}',\n mergedFromHint: 'Pedidos iguais viraram um só: você acompanha por esta.',\n buttonMenu: 'Sugestões',\n openPage: 'Ver sugestões do app',\n screenPick: 'Tela',\n screenPickHint: 'A tela que deve mudar. Se ela ainda não existe, escolha \"Nova tela\".',\n screenPickPlaceholder: 'Busque pelo nome da tela',\n newScreenOption: 'Nova tela (ainda não existe)',\n newScreenName: 'Nome da nova tela',\n newScreenHint: 'Como você chamaria a tela e em que parte do menu ela ficaria.',\n newScreenRequired: 'Diga o nome da nova tela.',\n newScreenTag: 'Nova tela',\n waiting: { solicitante: 'Aguardando solicitante', responsaveis: 'Aguardando responsáveis' },\n waitingFilter: 'Aguardando',\n waitingAny: 'Qualquer situação',\n waitingClear: 'Ninguém (conversa em dia)',\n waitingSaved: 'Situação da conversa atualizada.',\n menuWaiting: 'Aguardando',\n groupFilter: 'Grupo',\n allGroups: 'Todos os grupos',\n requestingGroups: 'Grupos solicitantes',\n noGroups: 'Sem grupo (criada pela equipe)',\n unread: { zero: 'nenhuma nova', one: '{count} nova', other: '{count} novas' },\n fromRequester: 'Solicitante',\n cardChecklist: { one: '{count} atividade ({done}/{count})', other: '{count} atividades ({done}/{count})' },\n requestedByName: 'Pedida por {name}',\n tabSummary: 'Resumo',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter envia; Shift+Enter quebra a linha.',\n inbox: {\n label: 'Sugestões',\n comment: '{name}: {comment}',\n status: '{name} mudou o status para {status}',\n },\n page: {\n title: 'Sugestões do app',\n allTitle: 'Todas as sugestões',\n statusPart: '{count} {status}',\n description: 'Acompanhe o que você pediu, o que seu grupo pediu e as sugestões em que você está envolvido, e converse com os responsáveis.',\n reasons: { autor: 'Minhas', relator: 'Agrupadas', envolvido: 'Envolvido', responsavel: 'Responsável', grupo: 'Do meu grupo' },\n reasonHints: {\n autor: 'Você pediu esta sugestão.',\n relator: 'Um pedido seu foi agrupado nesta sugestão.',\n envolvido: 'A equipe incluiu você como envolvido.',\n responsavel: 'Você é responsável por esta sugestão.',\n grupo: 'Alguém do seu grupo pediu esta sugestão.',\n },\n reasonFilter: 'Por que vejo',\n allReasons: 'Todas',\n needsYou: 'Precisam da sua resposta',\n sorts: { activity: 'Atividade recente', recent: 'Mais novas', votes: 'Mais apoiadas' },\n empty: 'Nenhuma sugestão por aqui ainda.',\n emptyHint: 'Peça uma melhoria em \"Sugerir melhoria\": ela aparece aqui com a conversa.',\n emptyFiltered: 'Nenhuma sugestão com esses filtros.',\n error: 'Não foi possível carregar as sugestões.',\n count: { one: '{count} sugestão', other: '{count} sugestões' },\n pickOne: 'Escolha uma sugestão para ver os detalhes e a conversa.',\n notFound: 'Sugestão não encontrada, ou você não tem acesso a ela.',\n conversation: 'Conversa',\n conversationEmpty: 'Ninguém escreveu ainda.',\n conversationError: 'Não foi possível carregar a conversa.',\n olderMessages: 'Mensagens anteriores',\n reply: 'Sua mensagem',\n replyPlaceholder: 'Responda aos responsáveis, dê mais detalhes…',\n replySend: 'Enviar',\n replyError: 'Não foi possível enviar a mensagem.',\n readOnly: 'Você acompanha esta sugestão pelo seu grupo: dá para apoiar, mas a conversa é só de quem pediu, dos envolvidos e dos responsáveis.',\n team: 'Equipe',\n you: 'Você',\n groups: 'Grupos',\n details: 'Detalhes',\n listLabel: 'Sugestões',\n filtersLabel: 'Filtros',\n waitingYou: 'Os responsáveis aguardam a sua resposta.',\n waitingTeam: 'Aguardando os responsáveis.',\n },\n planning: {\n viewSummary: 'Resumo',\n viewTasks: 'Tarefas',\n viewPlanning: 'Planejamento',\n viewSchedule: 'Cronograma',\n viewRisks: 'Riscos',\n viewWorkflow: 'Fluxo',\n loadError: 'Não foi possível carregar o planejamento.',\n saveError: 'Não foi possível salvar. Tente de novo.',\n retry: 'Tentar de novo',\n save: 'Salvar',\n cancel: 'Cancelar',\n delete: 'Excluir',\n edit: 'Editar',\n points: 'Pontos',\n pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },\n noEstimate: 'Sem estimativa',\n backlog: 'Backlog',\n noSprint: 'Nenhuma sprint em andamento.',\n unassigned: 'Sem responsável',\n dateRange: '{start} a {end}',\n summary: {\n activeSprint: 'Sprint em andamento',\n sprintPoints: '{done} de {total} pts concluídos',\n sprintCapacity: 'Capacidade: {capacity} pts',\n openTasks: 'Tarefas abertas',\n overdue: 'Vencidas',\n mine: 'Minhas tarefas',\n mineEmpty: 'Nada aberto atribuído a você.',\n deadlines: 'Prazos dos próximos 7 dias',\n deadlinesEmpty: 'Nenhum prazo vencido ou nos próximos 7 dias.',\n topRisks: 'Riscos altos',\n topRisksEmpty: 'Nenhum risco alto em aberto.',\n riskScore: 'Probabilidade {likelihood} · impacto {impact}',\n nextMilestone: 'Próximo marco',\n nextMilestoneEmpty: 'Nenhum marco à frente.',\n },\n tasks: {\n viewLabel: 'Mostrar como',\n viewList: 'Lista',\n viewTable: 'Tabela',\n listLabel: 'Tarefas abertas',\n gridCaption: 'Tarefas abertas do app',\n count: { zero: 'Nenhuma tarefa aberta', one: '{count} tarefa aberta', other: '{count} tarefas abertas' },\n open: 'Abrir',\n emptyHeading: 'Nenhuma tarefa aberta',\n emptyBody: 'As tarefas em análise, planejadas e em desenvolvimento aparecem aqui.',\n key: 'Chave',\n title: 'Título',\n status: 'Status',\n priority: 'Prioridade',\n assignee: 'Responsável',\n sprint: 'Sprint',\n due: 'Prazo',\n },\n sprints: {\n heading: 'Backlog e sprints',\n hint: 'Arraste uma tarefa para uma sprint ou de volta ao backlog.',\n readOnlyClosed: 'Sprints encerradas ficam só para consulta.',\n new: 'Nova sprint',\n start: 'Iniciar',\n close: 'Encerrar',\n state: { planned: 'Planejada', active: 'Em andamento', closed: 'Encerrada' },\n closeHeading: 'Encerrar {name}?',\n closeMessage: 'As tarefas não concluídas voltam ao backlog.',\n deleteHeading: 'Excluir {name}?',\n deleteMessage: 'As tarefas dela voltam ao backlog.',\n newHeading: 'Nova sprint',\n editHeading: 'Editar sprint',\n name: 'Nome',\n nameRequired: 'Informe o nome da sprint.',\n goal: 'Meta',\n start_date: 'Início',\n end_date: 'Fim',\n datesRequired: 'Informe o início e o fim.',\n datesOrder: 'O fim não pode ser antes do início.',\n capacity: 'Capacidade (pts)',\n activeExists: 'Já existe uma sprint em andamento: encerre-a antes de iniciar outra.',\n moved: '{key} foi para {target}.',\n progressHeading: 'Andamento de {name}',\n done: 'Concluído',\n committed: 'Comprometido',\n capacityUse: 'Uso da capacidade',\n burndownCaption: 'Burndown de {name}: pontos restantes por dia',\n day: 'Dia',\n ideal: 'Ideal',\n remaining: 'Restante',\n closed: 'Sprints encerradas',\n },\n schedule: {\n heading: 'Cronograma',\n label: 'Cronograma das tarefas',\n hint: 'Arraste uma barra para mudar o início e o prazo. Só aparecem as tarefas com data.',\n milestones: 'Marcos',\n newMilestone: 'Novo marco',\n milestoneTitle: 'Título',\n milestoneDate: 'Data',\n milestoneRequired: 'Informe o título e a data do marco.',\n removeMilestone: 'Excluir o marco {title}',\n rescheduled: '{key}: datas salvas.',\n conflicts: '{key} começa antes de terminar: {list}.',\n workloadHeading: 'Carga da equipe',\n workloadLabel: 'Pontos por pessoa nas próximas 4 semanas',\n workloadHint: 'Capacidade de referência: {capacity} pts por pessoa por semana.',\n week: 'Semana de {date}',\n noPeople: 'Ninguém tem tarefa com data e responsável.',\n },\n risks: {\n heading: 'Riscos',\n label: 'Riscos das tarefas do app',\n hint: 'Cada risco é de uma tarefa. Clique numa célula da matriz para filtrar a lista; clique num risco para editar.',\n new: 'Novo risco',\n newHeading: 'Novo risco',\n editHeading: 'Editar risco',\n title: 'Risco',\n titleRequired: 'Descreva o risco.',\n owner: 'Dono',\n status: 'Status',\n mitigation: 'Mitigação',\n deleteHeading: 'Excluir este risco?',\n statuses: { identified: 'Identificado', mitigating: 'Em mitigação', closed: 'Encerrado' },\n task: 'Tarefa',\n taskPlaceholder: 'Escolha a tarefa ameaçada',\n taskRequired: 'Escolha a tarefa do risco.',\n noTask: 'Sem tarefa',\n level: 'Risco',\n levels: { low: 'Baixo', medium: 'Médio', high: 'Alto', critical: 'Crítico' },\n ofTask: 'Riscos',\n add: 'Adicionar risco',\n empty: 'Nenhum risco nesta tarefa.',\n },\n workflow: {\n heading: 'Fluxo das sugestões',\n hint: 'Os status que quem pede acompanha em \"Minhas sugestões\". O fluxo é o mesmo para todos os apps.',\n label: 'Fluxo dos status das sugestões',\n count: { zero: 'Nenhuma no quadro', one: '{count} no quadro', other: '{count} no quadro' },\n plan: 'Planejar',\n start: 'Começar',\n finish: 'Concluir',\n refuse: 'Recusar',\n reopen: 'Reabrir',\n },\n detail: {\n estimate: 'Pontos',\n sprint: 'Sprint',\n backlogOption: 'Backlog (sem sprint)',\n dependsOn: 'Depende de',\n dependsOnPlaceholder: 'Buscar tarefa',\n dependencyCycle: 'Essa dependência formaria um ciclo entre as tarefas.',\n blockedBy: 'Bloqueada por {list}',\n },\n },\n },\n};\n","import { SpineMessages } from './spine-messages';\n\nexport const SPINE_MESSAGES_EN: SpineMessages = {\n meta: { locale: 'en' },\n inbox: {\n title: 'Notifications',\n button: { zero: 'Notifications', one: 'Notifications, {count} new', other: 'Notifications, {count} new' },\n empty: 'Nothing new here.',\n error: 'Could not load the notifications.',\n retry: 'Try again',\n news: { one: '{count} update', other: '{count} updates' },\n },\n header: {\n home: 'Home',\n apps: 'Applications',\n themeDark: 'Dark theme',\n themeLight: 'Light theme',\n densityComfortable: 'Comfortable density',\n densityCompact: 'Compact density',\n fullscreen: 'Full screen',\n exitFullscreen: 'Exit full screen',\n user: 'User',\n accessLevels: 'Access levels',\n settings: 'Settings',\n appearance: 'Appearance',\n shortcuts: 'Keyboard shortcuts',\n news: \"What's new\",\n newsUnseen: '{label} ({count})',\n logout: 'Sign out',\n search: 'Search',\n searchPlaceholder: 'Search for a module or page…',\n searchFavorites: 'Favorites',\n searchRecent: 'Opened recently',\n searchModules: 'Modules',\n searchScreens: 'Screens',\n },\n navigation: {\n back: 'Back',\n home: 'Home',\n favorite: 'Add this page to favorites',\n unfavorite: 'Remove from favorites',\n copyLink: 'Copy page link',\n linkCopied: 'Link copied!',\n },\n sidebar: {\n modules: 'Modules',\n moduleNavigation: '{module} navigation',\n apps: 'Applications',\n openInNewTab: 'Open in new tab',\n },\n pageBar: {\n favorite: 'Add this page to favorites',\n unfavorite: 'Remove from favorites',\n copyLink: 'Copy page link',\n linkCopied: 'Link copied',\n docs: 'Documentation for this screen',\n trail: 'You are here',\n },\n pagePanel: {\n notFoundTitle: \"We couldn't find this page\",\n notFoundText: 'This address no longer exists. Close the tab and open the page from the menu.',\n },\n docs: {\n heading: 'Documentation',\n index: 'Documentation index',\n search: 'Search the documentation',\n noMatch: 'No page matches that term.',\n empty: 'No screen has documentation yet.',\n view: 'Documentation view',\n usage: 'How to use',\n technical: 'Technical specification',\n loading: 'Loading the documentation',\n loadError: \"Couldn't load this documentation.\",\n invite: 'Pick a page in the index to read its documentation.',\n },\n news: {\n heading: \"What's new\",\n close: 'Close',\n unseen: 'New',\n toastOne: \"What's new: {title}\",\n toastMany: '{count} updates',\n see: 'View',\n loading: 'Loading updates…',\n empty: 'No updates yet.',\n loadError: 'Could not load the updates.',\n retry: 'Try again',\n pages: 'List of updates',\n search: 'Search updates',\n searchPlaceholder: 'Search updates…',\n filters: 'Filter updates',\n filterAll: 'All',\n filterUnread: 'Unread',\n filterFavorites: 'Favorites',\n favorite: 'Add \"{title}\" to favorites',\n unfavorite: 'Remove \"{title}\" from favorites',\n noResults: 'No updates found.',\n home: 'Home',\n changes: 'What changed',\n before: 'Before',\n after: 'Now',\n markUnread: 'Mark as unread',\n gotIt: 'Got it',\n kindInformativo: 'Announcement',\n kindImplementacao: 'Release',\n kindAlteracao: 'Change',\n publishedOn: 'Published on {date}',\n editedOn: 'Edited on {date}',\n body: 'Update text',\n detailError: 'Could not open this update. It may have been taken down.',\n },\n autoServiceNews: {\n caption: 'App updates',\n empty: 'No updates yet. People who sign in to the app see here what changed.',\n newNews: 'New update',\n editNews: 'Edit update',\n newNewsIntro: 'Fill in the update that people will see in the app.',\n editNewsIntro: 'Change the information of the update that people will see in the app.',\n sectionMain: 'Main information',\n sectionMainHint: 'The title and the summary show in the updates list and on the Home card.',\n sectionBody: 'Update content',\n sectionBodyHint: 'Describe the details of the update. Use formatting, lists and links, and highlight what matters.',\n sectionPublish: 'Publishing',\n sectionUntil: 'Expiry (optional)',\n sectionAudience: 'Audience',\n preview: 'Preview on Home',\n previewTitle: 'Update title',\n previewSummary: 'The summary shows here.',\n previewNow: 'Published on save',\n tipTitle: 'Tip:',\n tipText: 'a short title and a direct summary stand out on Home.',\n untilDate: 'Last day it shows',\n audienceGroups: 'Groups',\n kind: 'Update type',\n kindInformativo: 'Announcement',\n kindImplementacao: 'Release',\n kindAlteracao: 'Change',\n sectionBodyHintImpl: 'A short introduction, if you want, and the list of what is new.',\n sectionBodyHintAlt: 'Show how it was before and how it is now. The introduction is optional.',\n intro: 'Introduction (optional)',\n items: 'What changed',\n itemsHint: 'One change per item, up to 300 characters. From 1 to 30 items.',\n itemPlaceholder: 'Describe a change',\n itemsEmpty: 'No changes in the list yet.',\n before: 'Before',\n after: 'Now',\n colTitle: 'Title',\n colPublishedAt: 'Published',\n colUntil: 'Valid until',\n colAudience: 'Audience',\n colAuthor: 'Author',\n colStatus: 'Status',\n statusScheduled: 'Scheduled',\n statusPublished: 'Published',\n statusExpired: 'Expired',\n audienceAll: 'Everyone',\n noUntil: 'No end',\n title: 'Title',\n summary: 'Summary',\n summaryHint: 'Write a short, direct summary. Up to 300 characters.',\n body: 'Text',\n bodyHint: 'Opens when the person clicks the update.',\n publishDate: 'Publish date',\n publishTime: 'Publish time',\n publishHint: 'A future date schedules the update. Without a date, it is published right away.',\n until: 'Valid until',\n untilHint: 'If left empty, the update never expires.',\n audience: 'Audience',\n audienceHint: 'Groups with access to the app. With no group, everyone who signs in sees it.',\n confirmDeleteHeading: 'Delete update',\n confirmDelete: 'Delete the update \"{title}\"? It disappears for everyone, including those who have not seen it.',\n saveError: 'Could not save the update.',\n loadError: 'Could not load the updates.',\n errors: {\n invalidTitle: 'Enter a title of up to 140 characters.',\n invalidSummary: 'The summary has up to 300 characters.',\n bodyTooLarge: 'The text is over the 64 KB limit.',\n invalidPublishedAt: 'Invalid publish date or time.',\n invalidUntil: 'Invalid expiry date.',\n invalidGroupIds: 'Some audience group no longer has access to the app. Review the audience.',\n untilBeforePublish: 'The expiry date cannot be before the publish date.',\n invalidKind: 'Invalid update type.',\n invalidItems: 'A release needs 1 to 30 changes, up to 300 characters each.',\n invalidCompare: 'A change needs both the before and the now.',\n compareTooLarge: 'The before or the now is over the 32 KB limit.',\n },\n },\n setup: {\n label: 'Initial setup',\n step: 'Step {current} of {total}',\n skip: 'Skip',\n back: 'Back',\n next: 'Continue',\n finish: 'Get started',\n close: 'Got it',\n greeting: 'Hi, {name}. Make it yours.',\n greetingAnonymous: 'Make it yours.',\n appearanceIntro: 'Choose how the systems look to you. Your choice applies to all of them and can be changed any time in settings.',\n preview: 'Preview',\n previewPage: 'Home',\n essentialsTitle: 'The essentials',\n essentialsIntro: 'Four things that help day to day.',\n searchTitle: 'Search any screen',\n searchText: 'Press {key} or use the search in the header to find screens, favorites and what you opened recently.',\n tabsTitle: 'Tabs and panels',\n tabsText: 'Each screen opens in a tab. Drag a tab to one side of the workspace to see two screens together.',\n favoritesTitle: 'Favorites',\n favoritesText: 'Mark the heart on a screen to show it on the home page and at the top of search.',\n settingsTitle: 'Settings',\n settingsText: 'Appearance, region, accessibility and account security are in your profile menu, or at {key}.',\n },\n shortcuts: {\n heading: 'Keyboard shortcuts',\n hint: 'Tip: press {key} at any time to reopen this panel.',\n essentials: 'Review the essentials',\n dismiss: 'Got it',\n openSearch: 'Open quick search',\n goHome: 'Go to Home',\n goFavorite: 'Go to favorite no. 1 to 9',\n history: 'Back / forward in history',\n openSettings: 'Open settings',\n toggleSidebar: 'Open / collapse the side menu',\n toggleTheme: 'Toggle light / dark theme',\n fullscreen: 'Full screen',\n logout: 'Sign out',\n showHelp: 'Show this shortcuts panel',\n closeOverlay: 'Close open dialog / panel',\n },\n settings: {\n heading: 'Settings',\n appearance: 'Appearance',\n appearanceKeywords: 'visual colors theme layout',\n theme: 'Theme',\n themeDescription: 'Light, dark or the operating system one.',\n themeKeywords: 'dark mode light night',\n themeLight: 'Light',\n themeDark: 'Dark',\n themeSystem: 'System',\n accent: 'Main color',\n accentDescription: 'Color family for the header, buttons and highlights.',\n accentKeywords: 'family palette color accent',\n density: 'Density',\n densityDescription: 'Compact shows more information on screen.',\n densityKeywords: 'spacing size compact',\n comfortable: 'Comfortable',\n compact: 'Compact',\n font: 'Font',\n fontDescription: 'Typeface for the whole application.',\n fontKeywords: 'typography typeface text roboto rubik figtree geist',\n sidebar: 'Side menu',\n sidebarDescription: 'How the side menu opens and closes.',\n sidebarKeywords: 'sidebar navigation side bar',\n sidebarHelp: 'Automatic: opens when the pointer approaches. Fixed: always open. Compact: shows only the icons.',\n splitTabs: 'Split tabs',\n splitTabsDescription: 'Open panels side by side or one below the other, each with its own tabs. Off, the open tabs stay in a single panel.',\n splitTabsKeywords: 'split screen panels side by side tabs compare',\n sidebarAuto: 'Automatic',\n sidebarFixed: 'Fixed',\n sidebarCompact: 'Compact',\n region: 'Region',\n regionKeywords: 'language locale time date hour week',\n language: 'Language',\n languageDescription: 'Applies immediately, no reload.',\n languageKeywords: 'language locale translation english spanish portuguese',\n languageAuto: 'System default ({language})',\n timeZone: 'Time zone',\n timeZoneKeywords: 'timezone hour utc gmt',\n timeZoneHint: 'For dates and times. Now: {now}',\n timeZoneAuto: 'Automatic ({zone})',\n hourCycle: 'Time format',\n hourCycleHint: 'Now: {now}',\n hourCycleKeywords: 'clock 24h 12h am pm hour',\n hourCycleAuto: 'Automatic',\n hourCycle24: '24-hour',\n hourCycle12: '12-hour',\n weekStart: 'First day of the week',\n weekStartDescription: 'For calendars and date pickers.',\n weekStartKeywords: 'week calendar sunday monday',\n weekStartAuto: 'Automatic',\n shortcuts: 'Shortcuts',\n shortcutsDescription: 'Press ? on any screen to see this list.',\n shortcutsKeywords: 'keyboard keys',\n setup: 'Initial setup',\n setupDescription: 'Opens the first-access appearance choice again.',\n setupKeywords: 'initial setup first access appearance welcome onboarding',\n redoSetup: 'Redo',\n essentials: 'The essentials',\n essentialsDescription: 'Search, tabs, favorites and settings in a summary.',\n essentialsKeywords: 'help tips search tabs favorites introduction',\n showEssentials: 'View',\n accessibility: 'Accessibility',\n accessibilityKeywords: 'accessibility reading vision',\n textSize: 'Text size',\n textSizeDescription: 'Makes text and controls larger on every screen.',\n textSizeKeywords: 'zoom font letter bigger enlarge',\n motion: 'Reduce motion',\n motionDescription: 'System follows your computer or phone.',\n motionKeywords: 'animation motion transition reduced dizziness',\n motionSystem: 'System',\n motionReduce: 'Always',\n motionFull: 'Never',\n help: 'Help',\n helpKeywords: \"help what's new initial setup essentials introduction\",\n news: \"What's new\",\n newsDescription: 'What changed in the latest versions.',\n newsKeywords: 'news version release changelog',\n showNews: \"See what's new\",\n browserData: 'Browser data',\n browserDataDescription: 'Stored only in this browser, for your account.',\n browserDataKeywords: 'privacy clear delete history data',\n recentPages: 'Recent pages',\n recentPagesKeywords: 'history visited recent',\n recentSearches: 'Recent searches',\n recentSearchesKeywords: 'search query history',\n favorites: 'Favorites',\n favoritesKeywords: 'favorites star bookmarks',\n pagesCount: { zero: 'No pages stored', one: '{count} page stored', other: '{count} pages stored' },\n searchesCount: { zero: 'No searches stored', one: '{count} search stored', other: '{count} searches stored' },\n clear: 'Clear',\n confirmClear: 'Confirm',\n cancel: 'Cancel',\n recentPagesCleared: 'Recent pages cleared.',\n recentSearchesCleared: 'Recent searches cleared.',\n favoritesCleared: 'Favorites cleared.',\n restorePreferences: 'Preferences',\n restorePreferencesDescription: 'Appearance, accessibility and formats go back to the defaults.',\n restorePreferencesHelp: 'Back to the defaults: theme, main color, density, font, side menu, split tabs, text size, animations, time format and first day of the week. Language, time zone and single-key shortcuts stay as they are.',\n restorePreferencesKeywords: 'restore default reset preferences',\n restore: 'Restore defaults',\n confirmRestore: 'Confirm',\n preferencesRestored: 'Preferences restored.',\n account: 'Account',\n accountKeywords: 'profile user login level sign out',\n user: 'User',\n accessLevel: 'Access level',\n accessLevelKeywords: 'badge profile permission group',\n session: 'Session',\n sessionDescription: 'Renews itself while the application is open.',\n sessionKeywords: 'expiration token login',\n sessionUnknown: 'Not provided',\n sessionExpired: 'Expired at {time}',\n sessionExpiresIn: 'Expires in {minutes} min (at {time})',\n sessionExpiresAt: 'Expires at {time}',\n accessToken: 'Access token',\n accessTokenDescription: \"To test an API on your behalf. Don't share it.\",\n accessTokenKeywords: 'jwt bearer api developer',\n copy: 'Copy',\n moreAbout: 'More about {label}',\n appTokens: 'Application tokens',\n appTokensDescription: 'To use the application outside the interface: an MCP, a script.',\n appTokensKeywords: 'token app mcp api key pat x-app-token automation script integration',\n appTokensHelp: 'The token is valid only for this application, with the permissions of the chosen access level, and expires in at most 1 year. Send it in the x-app-token header.',\n groups: 'Groups',\n groupsDescription: 'The groups of this application you belong to. Pick one to see its members.',\n groupsKeywords: 'group groups members team people role administrator editor member add remove access',\n groupRole: 'Your role: {role} · Badge: {badge}',\n groupRoleDisabled: 'Your role: {role} · Group disabled',\n logout: 'Sign out',\n logoutDescription: 'Ends the session in this browser.',\n logoutKeywords: 'logout disconnect',\n mfa: 'MFA',\n mfaDescription: 'Two-step verification of your Argos account.',\n mfaKeywords: 'security argos password authentication mfa 2fa two-factor two-step verification',\n signedInAccount: 'Argos account',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Two-step verification',\n twoFactorDescription: 'A code on top of the password to sign in.',\n twoFactorKeywords: 'mfa 2fa totp authenticator code email method device phone',\n recoveryCodes: 'Recovery codes',\n recoveryCodesDescription: 'To sign in if you lose your device.',\n recoveryCodesKeywords: 'backup recovery lost phone device mfa 2fa',\n sessions: 'Sessions and devices',\n sessionsDescription: 'Where your account is signed in.',\n sessionsKeywords: 'devices browser ip end sign out disconnect connected',\n sessionsSection: 'Sessions',\n sessionsSectionDescription: 'This session, the application tokens and the signed-in devices.',\n sessionsSectionKeywords: 'session sessions token tokens devices login security',\n about: 'About',\n aboutKeywords: 'version build environment dependencies support',\n application: 'Application',\n version: 'Version',\n versionKeywords: 'release',\n buildDate: 'Build date',\n environment: 'Environment',\n environmentKeywords: 'staging production',\n links: 'Links',\n linksKeywords: 'repository documentation bug issue',\n docs: 'Documentation',\n reportIssue: 'Report a problem',\n repository: 'Repository',\n dependencies: 'Dependencies',\n dependenciesDescription: \"Versions declared in this application's package.json.\",\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Support information',\n supportInfoDescription: 'Version, environment, browser and preferences, to paste into the ticket.',\n supportInfoKeywords: 'help ticket diagnostics',\n noSessionToken: 'No session token available.',\n tokenCopied: \"Token copied. Don't share it: it gives access to your account until it expires.\",\n supportCopied: 'Information copied. Paste it into the support ticket.',\n copyBlocked: \"Couldn't copy. The browser blocked access to the clipboard.\",\n },\n support: {\n application: 'Application',\n version: 'Version',\n build: 'Build',\n environment: 'Environment',\n page: 'Page',\n browser: 'Browser',\n screen: 'Screen',\n theme: 'Theme',\n themeValue: '{theme} ({mode}) · family {family} · density {density} · font {font}',\n timeZone: 'Time zone',\n accessLevel: 'Access level',\n date: 'Date',\n },\n appTokens: {\n unavailable: \"Unavailable in this application: it isn't connected to argos-admin.\",\n created: 'Token \"{name}\" created — copy it now, it won\\'t be shown again.',\n sendHeader: 'Send it in the <code>x-app-token</code> header. Valid until {date}, with the permissions of the chosen access level.',\n copyToken: 'Copy token',\n saved: \"I've saved it\",\n loading: 'Loading…',\n expiredOn: 'Expired on {date}',\n expiresOn: 'Expires on {date}',\n lastUsed: 'Last used: {date}',\n never: 'never',\n revoke: 'Revoke',\n confirmRevoke: 'Confirm revocation',\n empty: \"You don't have any tokens in this application yet.\",\n noBadges: \"You don't have any access level in this application to create tokens.\",\n appOnly: 'Application: <strong>{name}</strong> — the token is valid only for it.',\n accessLevel: 'Access level',\n name: 'Name',\n namePlaceholder: 'E.g.: Claude MCP on my laptop',\n nameRequired: 'Give it a name so you can recognize the token later.',\n nameMax: 'Up to 80 characters.',\n validity: 'Validity',\n days30: '30 days',\n days90: '90 days',\n months6: '6 months',\n year1: '1 year',\n create: 'Create token',\n cancel: 'Cancel',\n newToken: 'New token',\n validCount: '{valid} of {max} valid',\n limit: 'Limit reached: revoke a token to create another one.',\n loadError: \"Couldn't load your tokens.\",\n badgesError: \"Couldn't load your access levels.\",\n createError: \"Couldn't create the token.\",\n copied: 'Token copied.',\n copyFailed: \"Couldn't copy. Select the text and copy it manually.\",\n revoked: 'Token \"{name}\" revoked. It may take up to 2 minutes to stop working in every system.',\n revokeError: \"Couldn't revoke the token.\",\n },\n myGroups: {\n loading: 'Loading…',\n loadError: \"Couldn't load the group members.\",\n roleAdministrator: 'Administrator',\n roleEditor: 'Editor',\n roleMember: 'Member',\n listLabel: 'Your groups',\n back: 'Back to groups',\n you: 'you',\n membersCount: { zero: 'No members', one: '{count} member', other: '{count} members' },\n matchesCount: { zero: 'No members found', one: '{count} member found', other: '{count} members found' },\n empty: 'No members in this group.',\n noMatches: 'No member matches this search.',\n filterMembers: 'Search members',\n loadingProgress: 'Loading members… {loaded} of {total}',\n partialResults: 'The list is still loading: the result may grow.',\n loadIncomplete: \"Couldn't load all members ({loaded} of {total}).\",\n retry: 'Try again',\n readOnly: 'As a member, you can only see who is in the group.',\n addMember: 'Add member',\n addHeading: 'Add to {group}',\n search: 'Person',\n searchPlaceholder: 'Name, login or email',\n searchHint: 'Type at least 2 letters.',\n searching: 'Searching…',\n noResults: 'No one found.',\n searchError: \"Couldn't search for people.\",\n alreadyMember: 'already a member',\n role: 'Role',\n editorAddsMembers: 'As an Editor, you add people as Members.',\n add: 'Add',\n cancel: 'Cancel',\n added: '{name} joined the group.',\n addError: \"Couldn't add the member.\",\n roleOf: \"{name}'s role\",\n roleChanged: \"{name}'s role: {role}.\",\n roleError: \"Couldn't change the role.\",\n remove: 'Remove',\n confirmRemove: 'Confirm removal',\n removed: '{name} left the group.',\n removeError: \"Couldn't remove the member.\",\n },\n accountSecurity: {\n loading: 'Loading…',\n loadError: \"Couldn't load your Argos account.\",\n retry: 'Try again',\n methodTotp: 'Authenticator app',\n methodEmail: 'Email',\n methodSms: 'SMS',\n active: 'Active',\n activeWithDetail: 'Active · {detail}',\n notRegistered: 'Not set up',\n unavailable: 'Unavailable',\n requiredHint: 'Required in this environment: keep at least one method.',\n add: 'Add',\n replaceDevice: 'Switch device',\n remove: 'Remove',\n cancel: 'Cancel',\n confirm: 'Confirm',\n removeTitle: 'Remove {method}?',\n removeHint: \"You won't be able to use this method to sign in anymore.\",\n removeLastHint: 'With no method left, the recovery codes stop working too.',\n reauthTitle: 'Confirm your identity',\n reauthHint: 'For security, confirm before continuing. It lasts 5 minutes.',\n reauthHow: 'How to confirm',\n reauthPassword: 'Password',\n reauthRecoveryCode: 'Recovery code',\n currentPassword: 'Current password',\n passwordRequired: 'Enter your password.',\n recoveryCode: 'Recovery code',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Enter the code.',\n recoveryCodeLength: 'The code has 10 letters and digits.',\n sendEmailCode: 'Send a code to the registered email',\n sixDigitCode: '6-digit code',\n totpTitle: 'Scan the QR code with the authenticator app',\n qrAlt: 'QR code to set up the authenticator app',\n manualKey: 'No camera? Type the key:',\n appCode: 'Code from the app',\n emailTitle: 'Add email',\n email: 'Email',\n emailPlaceholder: 'name@company.com',\n emailRequired: 'Enter the email.',\n emailInvalid: 'Enter a valid email.',\n sendCode: 'Send code',\n emailCodeTitle: 'Confirm the email',\n emailCodeHint: 'Enter the 6-digit code sent to {email}.',\n codesRemaining: { zero: 'No codes available', one: '1 code available', other: '{count} codes available' },\n codesHint: 'Each one works once. Generating new ones invalidates the previous ones.',\n codesNeedMethod: 'Set up a verification method to generate recovery codes.',\n generateCodes: 'Generate codes',\n regenerateCodes: 'Generate new codes',\n codesTitle: 'Your recovery codes',\n codesShownOnce: \"Keep them somewhere safe: they won't be shown again. Each one works once.\",\n copyCodes: 'Copy',\n downloadCodes: 'Download .txt',\n codesCopied: 'Codes copied.',\n copyFailed: \"Couldn't copy. Select the codes and copy them manually.\",\n codesSaved: \"I've saved the codes\",\n codesFileHeader: 'Argos recovery codes (each one works once)',\n codesFileName: 'recovery-codes.txt',\n notices: {\n methodAdded: 'Method added.',\n deviceReplaced: 'Device switched. The previous one no longer generates valid codes.',\n methodRemoved: 'Method removed.',\n codesRegenerated: 'Recovery codes generated. The previous ones no longer work.',\n reauthCodeSent: 'We sent a code to the registered email.',\n },\n errors: {\n generic: \"Couldn't finish. Try again.\",\n network: \"Couldn't reach Argos. Check the connection and try again.\",\n login_required: 'This sign-in session has ended in Argos. Sign in again to manage your account.',\n invalid_token: 'This sign-in session has ended in Argos. Sign in again to manage your account.',\n reauthentication_required: 'The identity confirmation expired. Confirm again to continue.',\n invalid_password: 'Wrong password.',\n account_locked: 'Too many password attempts. The account is locked for a few minutes.',\n invalid_code: 'Wrong code.',\n invalid_recovery_code: 'Invalid or already used recovery code.',\n code_expired: 'The code expired. Request another one.',\n code_not_requested: 'Request the code before typing it.',\n too_many_attempts: 'Too many attempts. Wait a few minutes and try again.',\n too_many_requests: 'Wait a moment before requesting another code.',\n mfa_method_not_allowed: \"This method isn't accepted in this environment.\",\n mfa_method_not_found: 'This method was no longer set up.',\n mfa_last_method: 'Two-step verification is required: keep at least one method.',\n invalid_email: 'Enter a valid email.',\n enrollment_not_started: 'The setup expired. Start again.',\n sms_not_available: 'SMS unavailable.',\n mfa_required_for_recovery_codes: 'Set up a verification method before generating codes.',\n session_not_found: 'The session had already ended.',\n },\n sessionsEmpty: 'No active sessions.',\n thisSession: 'This session',\n thisBrowser: 'This browser',\n appsOnly: 'Apps only',\n sessionDetail: 'IP {ip} · last used {date}',\n unknownIp: 'unknown',\n sessionSince: 'Since {date}',\n sessionApps: 'Apps: {apps}',\n unnamedApp: 'App',\n endSession: 'End',\n confirmEndSession: 'Confirm ending',\n endOthers: 'End all other sessions',\n endOthersConfirm: {\n one: 'End the other session? Apps open in it will ask you to sign in again.',\n other: 'End the {count} other sessions? Apps open in them will ask you to sign in again.',\n },\n sessionEndedNotice: 'Session ended.',\n othersEndedNotice: { zero: 'No sessions ended.', one: '1 session ended.', other: '{count} sessions ended.' },\n },\n ratings: {\n rateScreen: 'Rate this page',\n rateApp: 'Rate {app}',\n ratedApp: 'Your rating of {app}',\n heading: 'Rate your experience',\n subheading: 'Take the chance to share your opinion',\n aboutScreen: 'Page: {screen}',\n aboutApp: '{app} as a whole',\n score: 'Your rating',\n scoreOf: '{value} of 10',\n scoreNamed: '{value} of 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Poor', 2: 'Fair', 3: 'Good', 4: 'Very good', 5: 'Excellent' },\n noScore: 'Not rated',\n scaleHint: 'From 0 to 10: each star is worth 2 and a half star, 1. Arrow keys move by half a star; clicking the first half star again gives 0.',\n comment: 'Comment',\n commentPlaceholder: 'What worked, what could be better (optional)',\n submit: 'Rate',\n update: 'Update',\n previous: 'You rated on {date}. You can change it anytime.',\n scoreRequired: 'Choose a rating from 0 to 10.',\n loading: 'Loading your rating…',\n thanks: 'Thanks for your rating!',\n updated: 'Rating updated. Thank you!',\n saveError: 'Could not send the rating. Try again.',\n period: 'Period',\n periods: { all: 'All time', d7: '7 days', d30: '30 days', d90: '90 days' },\n refresh: 'Refresh',\n appCard: 'The application',\n screensCard: 'The pages',\n appCardHint: 'Overall rating',\n screensCardHint: 'Overall rating of the pages',\n scoreMax: '/10',\n average: 'Average',\n total: { zero: 'No ratings', one: '1 rating', other: '{count} ratings' },\n comments: { zero: 'no comments', one: '1 comment', other: '{count} comments' },\n noRatings: 'No ratings in this period yet.',\n distribution: 'Rating distribution',\n distributionRow: 'Score {score}: {count} ({share})',\n ranking: 'Ratings by page and area',\n rankingHint: 'Compare the pages. Click one to see its ratings.',\n sort: 'Order',\n sorts: { worst: 'Worst first', best: 'Best first', most: 'Most rated' },\n noScreens: 'No pages rated in this period.',\n filterByScreen: 'See the ratings of {screen}',\n recent: 'Recent ratings',\n recentHint: 'Newest first.',\n filterScope: 'What was rated',\n allScopes: 'Tool and pages',\n tool: 'The application',\n screens: 'The pages',\n filterScreen: 'Page',\n allScreens: 'All pages',\n filterScore: 'Rating',\n allScores: 'All ratings',\n withComment: 'Show only with comment',\n clearFilters: 'Clear filters',\n noComment: 'No comment.',\n itemActions: 'Rating actions',\n copyComment: 'Copy comment',\n commentCopied: 'Comment copied.',\n copyFailed: 'Could not copy the comment.',\n showAppRatings: 'See ratings for the tool',\n showScreenRatings: 'See ratings for this page',\n emptyList: 'No ratings match these filters.',\n pagination: 'Rating pages',\n unknownUser: 'User',\n loadError: 'Could not load the ratings.',\n forbidden: 'You do not administer this application, or the Administrator badge is not active.',\n updatedAt: 'Updated on {date} at {time}',\n details: 'See details',\n detailsOf: '({name} ratings)',\n tabScreens: 'Pages',\n tabAreas: 'Areas',\n tabTrends: 'Trends',\n viewAll: 'See all ratings',\n allHeading: 'All ratings',\n justNow: 'Just now',\n yesterdayAt: 'Yesterday at {time}',\n dateAt: '{date} at {time}',\n sortsShort: { worst: 'Worst', best: 'Best', most: 'Most rated' },\n bands: { all: 'All scores', bad: 'Poor (below 5)', mid: 'Average (5 to 6.9)', good: 'Good (7 or more)' },\n bandFilter: 'Score range',\n filterArea: 'Area',\n allAreas: 'All areas',\n noArea: 'No area',\n filterByArea: 'See the pages of {area}',\n screensCount: { one: '1 page', other: '{count} pages' },\n searchScreens: 'Search page or path…',\n searchScreensLabel: 'Search page',\n searchAreas: 'Search area…',\n searchAreasLabel: 'Search area',\n tableEmpty: 'No page matches these filters.',\n areasEmpty: 'No area matches these filters.',\n colScreen: 'Page',\n colArea: 'Area',\n colScreens: 'Pages',\n colScore: 'Score',\n colTotal: 'Ratings',\n colComments: 'Comments',\n colTrend: 'Trend',\n colOpen: 'Open',\n tablePagination: 'Page list pages',\n areasPagination: 'Area list pages',\n trendOf: 'Weekly average: from {first} to {last}',\n trendNone: 'No weekly scores in the period.',\n trendCaption: 'Weekly average, from 0 to 10',\n trendEmpty: 'No ratings in the period to show a trend.',\n trendValue: '{series} {value}',\n trendWeek: 'Week of {week}: {values} ({count})',\n aboutRating: 'Rating',\n aboutRatingKeywords: 'rate rating stars average opinion',\n rateAction: 'Rate',\n noRatingsYet: 'No ratings yet.',\n loadingAverage: 'Loading the average…',\n averageError: 'Could not load the average.',\n },\n notification: {\n genericError: 'An error occurred while processing your request.',\n },\n graphql: {\n noResponse: \"The service didn't respond.\",\n serviceFailure: 'Service failure.',\n done: 'Operation completed.',\n failed: \"Couldn't complete the operation.\",\n },\n access: {\n blockedText:\n \"You're not in any group of this application. Ask its administrator to add you to a group, then sign in again.\",\n blockedAction: 'Sign out',\n noRightsText: \"You don't have access to any page of this application. Contact its administrator to request access.\",\n },\n session: {\n offline: \"Can't reach the authentication server. You're still signed in; trying to reconnect…\",\n reconnecting: 'Reconnecting…',\n reauthorizing: 'Renewing your session…',\n reauthorizationRequired: 'Your session needs to be confirmed. Nothing you have open will be lost.',\n signInAgain: 'Sign in again',\n callbackFailedHeading: \"Couldn't complete sign-in\",\n callbackFailedText: 'The sign-in response was incomplete or expired. Sign in again to continue.',\n logoutFailed: \"Couldn't sign out right now. Check your connection and try again.\",\n },\n routing: {\n notPublished: \"This address is in your access, but its screen hasn't been published yet.\",\n notPublishedCode: \"This address is in your access, but its screen hasn't been published yet. Give the code {code} to the Acropole team.\",\n },\n home: {\n noAccessTitle: \"You don't have access to any screen yet\",\n noAccessText:\n \"Access is granted by the application's administrator or by the administrator of a group with access to it. If they've already granted it, sign out and sign in again.\",\n yourScreens: 'Your screens',\n modules: 'Quick access',\n privileged: 'Privileged access',\n recent: 'Pick up where you left off',\n recentCaption: 'The screens you opened last, from most recent to oldest.',\n screenCount: { one: '1 screen', other: '{count} screens' },\n favorite: 'Add {name} to favorites',\n unfavorite: 'Remove {name} from favorites',\n favorites: 'Favorites',\n morning: 'Good morning',\n afternoon: 'Good afternoon',\n evening: 'Good evening',\n greetingName: '{greeting}, {name}',\n intro: 'Open your tools and keep up with updates to your systems.',\n seeAll: 'See all',\n seeLess: 'See less',\n recentActions: 'More actions for {name}',\n forgetRecent: 'Remove from history',\n explore: 'Explore systems',\n exploreIntro: 'Open the main modules of the platform.',\n news: \"What's new\",\n newsBadge: 'Updates',\n newsAll: 'See all',\n favoritesEmpty: 'Tap the heart on a screen bar to see it here.',\n help: 'Help and resources',\n shortcuts: 'Keyboard shortcuts',\n essentials: 'Review the essentials',\n settings: 'Settings',\n systemDocs: 'System documentation',\n },\n autoService: {\n loading: 'Loading...',\n cancel: 'Cancel',\n save: 'Save',\n create: 'Create',\n edit: 'Edit',\n remove: 'Remove',\n search: 'Look up',\n active: 'Active',\n inactive: 'Inactive',\n confirmChanges: 'Confirm changes',\n appsTitle: 'Applications',\n clientSections: 'Client sections',\n tabRoutes: 'Routes',\n tabRouters: 'Routers',\n tabAccess: 'Access',\n noClients:\n \"You don't manage this app. You need to (a) be in its project's administration group and (b) be signed in with the <strong>Administrator</strong> badge active. Switch badges in your profile menu, if available, or ask whoever manages the project for access.\",\n clientsLoadError: 'Could not load the clients you administer (HTTP {status}). This is not a permission issue: Argos did not respond. Try again in a moment.',\n retryLoad: 'Try again',\n pickClient: 'Select the client you want to manage',\n pickGroup: 'Select a group',\n noDescription: 'No description provided.',\n manageMembers: 'Manage members',\n membersCaption: 'Group members',\n noMembers: 'No members in this group.',\n colUser: 'User',\n colMemberSince: 'Member since',\n membersHeading: 'Members — {group}',\n addUser: 'Add user',\n userSearch: 'Search by name, username or email...',\n role: 'Role (optional)',\n noRole: 'Member (no role)',\n add: 'Add',\n suggestions: 'Suggestions',\n suggestionsHint: 'People already in other groups of this system',\n suggestionGroups: 'In {groups}',\n addSuggestion: 'Add {name} to the group',\n membersTitle: 'Group members',\n memberSearch: 'Search members...',\n membersOf: 'Members of group {group}',\n noMembersShort: 'No members.',\n noMembersMatch: 'No member matches this search.',\n membersLoadingProgress: 'Loading members… {loaded} of {total}',\n membersPartialResults: 'The list and the search may still grow.',\n membersLoadIncomplete: \"Couldn't load all members ({loaded} of {total}).\",\n newMember: 'New',\n addedBy: 'by {user}',\n removal: 'Removal',\n removalEmpty: 'Check members in the list to remove them from the group. Removal only applies when you save.',\n undoRemoval: 'Undo removal',\n saveChanges: 'Save changes',\n colRole: 'Role',\n colAddedAt: 'Added on',\n newAccess: 'New access',\n newAccessHeading: 'New access',\n accessCaption: 'Client access',\n noAccess: 'No access granted yet.',\n colGroup: 'Group',\n manageRoutes: 'Manage routes',\n group: 'Group',\n routesOf: 'Routes for {group}',\n noPrivateRoutes: \"No private route available for this group's badge.\",\n register: 'Register',\n secretCreated: \"Application created. Save the secret now, it won't be shown again:\",\n pickApp: 'Select an application',\n disable: 'Disable',\n enable: 'Enable',\n delete: 'Delete',\n appSections: 'Application sections',\n tabOperations: 'Operations',\n tabAccesses: 'Access',\n editApp: 'Edit application',\n newApp: 'New application',\n name: 'Name',\n grants: 'Grants (comma-separated)',\n appAccessCaption: 'Application access',\n noAppAccess: 'No group has access to this application yet.',\n colType: 'Type',\n manageOperations: 'Manage operations',\n colOperations: 'Operations',\n colGuards: 'Guards',\n colMembers: 'Members',\n filterOperations: 'Filter operations',\n filterRoutes: 'Filter routes',\n noFilterMatch: 'Nothing matches “{term}”.',\n routesTreeLabel: 'Private routes',\n operationsOf: 'Operations for {group}',\n noOperations: 'No operation registered for this application yet.',\n operationsCaption: 'Registered operations',\n colIdentifier: 'Identifier',\n colMethod: 'Method',\n colLevel: 'Level',\n colDescription: 'Description',\n colAllowedGroups: 'Allowed groups',\n groupCount: { one: '1 group', other: '{count} groups' },\n newRouter: 'New router',\n routersCaption: 'Client routers',\n noRouters: 'No router registered yet.',\n private: 'Private',\n public: 'Public',\n editRouter: 'Edit router',\n page: 'Page (required)',\n hierarchy: 'Hierarchy (optional)',\n levelHeader: 'Header',\n levelNavigation: 'Navigation',\n levelMenu: 'Menu',\n levelItem: 'Item',\n levelSubmenu: 'Submenu',\n privateHint: 'Private (requires access + guard to be visible)',\n routerDescription: 'Description',\n routerDescriptionHint: 'What the screen does, in one sentence. Shown below the title, in the page bar. On a router inherited from a template, the template text wins on the next sync.',\n colPage: 'Page',\n colBuiltPath: 'Built path',\n colVisibility: 'Visibility',\n colAllowedBadges: 'Allowed badges',\n anyBadge: 'Any badge',\n allowedBadgesHint: 'Empty = any badge. With one or more chosen, only groups with one of those badges can be given access to this screen in the Access tab.',\n newRoute: 'New route',\n routesCaption: 'Client routes',\n noRoutes: 'No route registered yet.',\n editRoute: 'Edit route',\n internalName: 'Internal name',\n displayName: 'Display name',\n icon: 'Icon',\n iconPlaceholder: 'e.g.: home',\n path: 'Path',\n info: 'Info',\n excludable: 'Deletable',\n excludableLocked: 'Protected route: only the central Argos administration can allow deleting it.',\n templateTag: 'Template',\n templateLocked: \"Comes from the application's template: only the central Argos administration can edit or delete it.\",\n pathPlaceholder: 'e.g.: dashboard',\n pathHint: 'A single piece of the address: lowercase letters and hyphens. The router adds the \"/\" between levels.',\n pathInvalid: 'Use only lowercase letters (a–z) and hyphens — no \"/\", spaces, digits or accents, and no hyphen at the start or end.',\n optionalId: 'ID (optional)',\n optionalIdPlaceholder: 'generated automatically',\n optionalIdHint: 'To keep staging and production with the same id, paste the id from the other environment; empty = generated.',\n optionalIdInvalid: 'Enter a UUID (e.g. 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) or leave it empty.',\n idTaken: 'This id is already in use. Choose another or leave the field empty.',\n rotateSecret: 'Generate new secret',\n confirmRotateSecretHeading: 'Generate a new secret?',\n confirmRotateSecret: 'The current secret stops working right away; update the APP_SECRET of the service that uses this application. Tokens already issued stay valid until they expire (up to 1 hour).',\n rotatedSecretHeading: 'New secret for {name}',\n rotatedSecretWarning: \"Copy it now: the secret won't be shown again.\",\n rotatedSecretNote: 'The server keeps only a hash of the secret. Once this window is closed there is no way to look it up; if it gets lost, generate another one.',\n rotatedSecretLabel: 'Secret of application {name}',\n copySecret: 'Copy',\n secretCopied: 'Secret copied.',\n rotatedSecretDone: 'Done',\n rotateSecretError: \"Couldn't generate the new secret. Try again.\",\n rotateSecretNotFound: 'Application not found in this client.',\n rotateSecretForbidden: \"You don't manage this client.\",\n confirmDeleteAppHeading: 'Delete application?',\n confirmDeleteApp: 'The application {name} will be deleted and its credential will stop working. This cannot be undone.',\n confirmDeleteRouteHeading: 'Delete route?',\n confirmDeleteRoute: 'The route {name} will be deleted from this client. This cannot be undone.',\n confirmDeleteRouterHeading: 'Delete router?',\n confirmDeleteRouter: 'The router {path} will be deleted and the page leaves the menu. This cannot be undone.',\n confirmRemoveAccessHeading: 'Remove access?',\n confirmRemoveAccess: 'The group {group} loses access to the private routes of this client.',\n confirmRemoveConsumerHeading: 'Remove access to the application?',\n confirmRemoveConsumer: 'The group {group} stops consuming this application and loses its operation permissions.',\n deleteDone: 'Deleted.',\n deleteError: 'Could not delete. Try again.',\n colExcludable: 'Deletable',\n excludableYes: 'Yes',\n excludableNo: 'No',\n colName: 'Name',\n colDisplay: 'Display',\n colIcon: 'Icon',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copy the ID of route {name}',\n copyRouterId: 'Copy the ID of router {name}',\n idCopied: 'ID copied',\n reorder: 'Reorder',\n reorderTitle: 'Reorder menu',\n reorderHint: 'Change the order in which items appear in the app menu: drag by the handle (or, on the keyboard, Space on the handle and the arrow keys) or use the up and down buttons. To order what sits inside an item, open it.',\n reorderPath: 'Menu level',\n reorderRoot: 'Top of the menu',\n reorderListLabel: 'Order in {name}',\n reorderEmpty: 'No router registered to order.',\n moveUp: 'Move {name} up',\n moveDown: 'Move {name} down',\n openLevel: 'Order what sits inside {name}',\n childCount: { one: '1 item inside', other: '{count} items inside' },\n movedTo: '{name}: position {position} of {total}',\n reorderLoadError: 'Could not load the menu. Try again.',\n reorderSaveError: 'Could not save the order. Nothing was lost: try again.',\n reorderSave: 'Save order',\n newGroup: 'New group',\n editGroup: 'Edit group',\n noGroups: 'No groups yet.',\n accessLevel: 'Access level',\n pickAccessLevel: 'Select a level',\n noLevel: 'No level',\n noGroupsOfLevel: 'No groups at this level.',\n colStatus: 'Status',\n groupName: 'Name',\n groupType: 'Type',\n groupTypePlaceholder: 'Select the type',\n groupDescription: 'Description (optional)',\n confirmDeleteGroupHeading: 'Delete group?',\n confirmDeleteGroup:\n 'The {name} group will be deleted along with its members, screen access and application permissions. This cannot be undone.',\n groupSaveError: 'Could not save the group. Try again.',\n membersSaveError: 'Could not save all member changes. Check the list and try again.',\n noApps: 'No applications registered yet.',\n tabTokens: 'Tokens',\n tokensCaption: 'Application tokens',\n noTokens: 'No tokens created for this application yet.',\n newToken: 'New token',\n colTokenPrefix: 'Token prefix',\n colExpiresAt: 'Expires',\n colLastUsed: 'Last used',\n tokenExpired: 'Expired',\n tokenRevoked: 'Revoked',\n neverUsed: 'Never',\n revokeToken: 'Revoke',\n confirmRevokeTokenHeading: 'Revoke token?',\n confirmRevokeToken: 'The token {name} stops working right away. Revoking cannot be undone.',\n tokenRevokedDone: 'Token {name} revoked.',\n tokenRevokeError: 'Could not revoke the token. Try again.',\n tokensLoadError: 'Could not load the application tokens.',\n tokenName: 'Name',\n tokenDescription: 'Description (optional)',\n tokenExpiresAt: 'Expires on',\n tokenExpiresHint: 'From tomorrow up to 365 days from today.',\n tokenExpiresInvalid: 'Pick a date between tomorrow and 365 days from today.',\n tokenOperations: 'Operations granted to the token',\n tokenOperationsNote: 'Nothing comes checked: a token has no login, so check the protected and private operations it may call. Public ones need no token.',\n freeForAll: 'open to everyone',\n freeForAuthenticated: 'open to authenticated callers',\n freeNoPermission: 'does not depend on permission',\n publicNoToken: 'public: no token needed',\n createToken: 'Create token',\n tokenSaveError: 'Could not create the token. Try again.',\n tokenCreatedHeading: 'Token {name} created',\n tokenCreatedWarning: 'Copy it now: the token will not be shown again.',\n tokenCreatedNote: 'Send it in the x-api-token header. The server keeps only a hash of the token; if it is lost, revoke it and create another.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copy',\n tokenCopied: 'Token copied.',\n hierarchyHint: 'Top-down: Navigation only with a Header, Menu only with a Navigation, Item only with a Menu and Submenu only with an Item. Clearing a level clears the ones below.',\n routerSaveError: 'Could not save the router. Try again.',\n permissionsSaveError: 'Could not save all operation changes. Reopen the panel and check.',\n permissionsSummaryGroup: '{marked} of {total} protected operations granted to the group.',\n permissionsSummaryToken: '{marked} of {total} operations granted to the token.',\n permissionsFreeGroup: {\n one: '1 operation does not depend on permission (public or private) and shows as checked.',\n other: '{count} operations do not depend on permission (public or private) and show as checked.',\n },\n permissionsFreeToken: {\n one: '1 public operation needs no token and cannot be granted.',\n other: '{count} public operations need no token and cannot be granted.',\n },\n permissionsFolderCount: '{marked} of {total}',\n permissionsTreeLabel: 'Operations',\n tokenErrors: {\n invalidExpiresAt: 'Invalid expiration date. Pick another date.',\n invalidValidity: 'The expiration must be between tomorrow and 365 days from today.',\n invalidOperationIds: 'Some selected operation no longer exists in this application. Reopen the form and choose again.',\n operationNotProtected: 'Only protected operations can be granted to a group; public and private ones already apply to it.',\n operationPublic: 'A public operation needs no token and cannot be granted to one. Uncheck it and try again.',\n appNotFound: 'Application not found in this client. It may have been deleted.',\n tokenNotFound: 'Token not found in this application. It may have been revoked already.',\n },\n routerErrors: {\n hierarchyGap: 'The hierarchy has an empty level in the middle: each level needs the one above it (Header → Navigation → Menu → Item → Submenu). Fill in the missing level or clear the ones below.',\n invalidAllowedTypes: 'A chosen badge no longer exists. Review the allowed badges.',\n },\n groupErrors: {\n invalidType: 'That group type no longer exists. Choose another type.',\n adminTypeReserved: \"The Administrator type belongs only to the project's administration group.\",\n emptyUpdate: 'Nothing to save: no field was changed.',\n groupProjectImmutable: \"A group can't move to another project.\",\n groupNameTaken: 'A group with this name already exists in this project.',\n adminGroupImmutable: \"The administration group can't be renamed, change type or be disabled.\",\n adminGroupProtected: \"The project's administration group can't be deleted.\",\n adminGroupLastMember: \"The administration group can't be left without members.\",\n adminGroupAccessProtected: \"The administration group's access to this app can't be removed.\",\n groupNotFound: 'Group not found in this project. It may have been deleted.',\n },\n },\n autoServiceAudit: {\n title: 'Audit',\n period: 'Period',\n periodLastHour: 'Last hour',\n period24h: 'Last 24 hours',\n period7d: 'Last 7 days',\n period30d: 'Last 30 days',\n periodFromFilters: 'The period comes from the dates chosen in the filters.',\n filters: 'Audit filters',\n filterDates: 'Dates',\n filterApp: 'Application',\n filterUser: 'User',\n filterOperation: 'Operation',\n filterMethod: 'Method',\n filterOutcome: 'Outcome',\n filterEntry: 'User actions only',\n userPlaceholder: 'User name',\n operationPlaceholder: 'Operation identifier or name',\n methodRead: 'Read',\n methodWrite: 'Write',\n methodDelete: 'Delete',\n methodStream: 'Stream',\n outcomeSuccess: 'Success',\n outcomeFailure: 'Failure',\n outcomeDenied: 'Denied',\n kpiTotal: 'Events',\n kpiTotalDescription: 'Everything recorded in the period.',\n kpiFailures: 'Failures',\n kpiDenied: 'Denied',\n kpiShare: '{percent} of total',\n kpis: 'Period summary',\n timeline: 'Timeline',\n timelineSummary: 'Events per interval, from {from} to {to}.',\n bucketSummary: '{time}: {total} events, {failures} failures, {denied} denied',\n timelineEmpty: 'No events to plot in the period.',\n topOperations: 'Most called operations',\n topUsers: 'Most active users',\n topApps: 'By application',\n noTop: 'Nothing in the period.',\n failureCount: { one: '1 failure', other: '{count} failures' },\n deniedCount: { one: '1 denied', other: '{count} denied' },\n filterBy: 'Filter by {name}',\n eventsCaption: 'Events in the period, newest first',\n colWhen: 'When',\n colApp: 'Application',\n colUser: 'User',\n colOperation: 'Operation',\n colMethod: 'Method',\n colOutcome: 'Outcome',\n colStatus: 'HTTP',\n colDuration: 'Duration',\n durationMs: '{ms} ms',\n pageItems: 'events',\n pageSize: 'per page',\n pageError: 'Could not load this page of events. Try again.',\n loading: 'Loading the audit…',\n emptyTitle: 'No events in the period',\n emptyText: 'Widen the period or remove filters to see more.',\n clearFilters: 'Clear filters',\n errorTitle: 'Could not load the audit',\n errorText: 'The server did not respond as expected. Try again in a moment.',\n retry: 'Try again',\n rangeTooLarge: 'The maximum period is 31 days. Pick closer dates.',\n forbidden: 'You do not have access to the audit of one of the chosen applications.',\n anonymous: 'No user',\n detailHeading: 'Event detail',\n detailLoading: 'Loading the full detail…',\n detailError: 'Could not load the full detail; showing the summary.',\n fieldWhen: 'When',\n fieldApp: 'Application',\n fieldUser: 'User',\n fieldActor: 'Actor type',\n fieldIp: 'Source IP',\n fieldOperation: 'Operation',\n fieldIdentifier: 'Identifier',\n fieldMethod: 'Method',\n fieldLevel: 'Level',\n fieldPermission: 'Permission',\n fieldOutcome: 'Outcome',\n fieldStatus: 'HTTP status',\n fieldDuration: 'Duration',\n fieldRoute: 'Route',\n fieldTarget: 'Target',\n fieldOrigin: 'Origin',\n originEntry: 'User action',\n originInternal: 'Call between applications',\n fieldTrace: 'Trace',\n fieldEventId: 'Event ID',\n fieldMessage: 'Message',\n fieldReceivedAt: 'Received at',\n fieldInstance: 'Service instance',\n fieldSdk: 'SDK',\n fieldDetails: 'Details',\n viewTrace: 'View chain (trace)',\n traceHeading: 'Action chain',\n traceLoading: 'Loading the chain…',\n traceError: 'Could not load the chain.',\n traceEmpty: 'No event of this chain belongs to your project’s applications.',\n traceHidden: {\n one: '1 event of this chain belongs to an application outside your project and is not shown here.',\n other: '{count} events of this chain belong to applications outside your project and are not shown here.',\n },\n period6h: 'Last 6 hours',\n refresh: 'Refresh',\n autoRefresh: 'Refresh every 30 s',\n updatedAt: 'Updated at {time}',\n updating: 'Updating…',\n filterUserId: 'User ID',\n filterLevel: 'Level',\n filterPermission: 'Permission',\n filterActor: 'Actor type',\n filterStatus: 'HTTP status',\n filterTrace: 'Trace',\n userIdPlaceholder: 'User UUID',\n statusPlaceholder: 'E.g. 403',\n tracePlaceholder: '32 hexadecimal characters',\n levelPublic: 'Public',\n levelPrivate: 'Private',\n levelProtected: 'Protected',\n levelOptional: 'Optional',\n permissionAllowed: 'Allowed',\n permissionForbidden: 'Forbidden',\n permissionUnauthorized: 'Not authenticated',\n permissionPublic: 'Public',\n actorUser: 'User',\n actorAppToken: 'Application token',\n actorApiToken: 'API token',\n actorPublic: 'Public',\n actorUnauthenticated: 'Not authenticated',\n forbiddenAdmin: 'Your account cannot read the audit log. Ask an administrator for the admin:audit:* operations.',\n invalidFilter: 'A filter has an invalid value. {detail}',\n kpiFilterHint: '{share} · click to filter',\n topsRange: '{from}–{to} of {total}',\n topsPrevious: 'Previous page of {name}',\n topsNext: 'Next page of {name}',\n topsError: 'Could not load this list.',\n filterByTrace: 'Filter the table by this trace',\n unitLabel: 'View by',\n unitActions: 'Actions',\n unitEvents: 'Events',\n kpiTotalActions: 'Actions',\n kpiTotalActionsDescription: 'Each action counts once, with every step across applications; its result is the worst of them.',\n timelineSummaryActions: 'Actions per interval, from {from} to {to}.',\n bucketSummaryActions: '{time}: {total} actions, {failures} failed, {denied} denied',\n timelineEmptyActions: 'No actions to plot in the period.',\n actionsCaption: 'Actions in the period, newest first',\n pageItemsActions: 'actions',\n pageErrorActions: 'Could not load this page of actions. Try again.',\n emptyTitleActions: 'No actions in the period',\n colSpans: 'Spans',\n spansApps: 'Applications: {apps}',\n spansHidden: {\n one: 'plus 1 span from an application outside your project',\n other: 'plus {count} spans from applications outside your project',\n },\n actionDetailHeading: 'Action detail',\n orphanNote: 'The entry of this action is not in the period (or was not recorded): it is shown from its first call between applications.',\n orphanTag: 'no entry',\n spansHeading: 'Action spans',\n spansSummary: '{count} spans in {duration}',\n spanRow: '{app}, {operation}: {outcome}, starts at +{offset}, takes {duration}',\n },\n loginAttempts: {\n refresh: 'Refresh',\n user: 'User',\n userPlaceholder: 'User, e-mail or typed identifier',\n period: 'Period',\n result: 'Result',\n method: 'Method',\n all: 'All',\n clear: 'Clear',\n advancedFilters: 'Advanced filters',\n ip: 'IP or network',\n ipPlaceholder: '10.0.0.5 or 10.0.0.0/8',\n ipHint: 'Exact IP or a network in CIDR notation.',\n reason: 'Reason',\n caption: 'Login attempts',\n pageItems: 'attempts',\n pageSize: 'Attempts per page',\n colDate: 'Date/time',\n colResult: 'Result',\n colMethod: 'Method',\n colUser: 'User',\n colReason: 'Reason',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Browser',\n filterByIp: 'Filter by this IP',\n filterByUser: 'Filter by this user',\n noMatchingUser: 'no matching user',\n methods: { local: 'Password', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Success', failure: 'Failure', cancelled: 'Cancelled' },\n reasons: {\n bad_password: 'Wrong password',\n unknown_user: 'Unknown or inactive user',\n locked: 'Account locked after failed attempts',\n mfa_failed: 'Wrong verification code',\n mfa_expired: 'Expired verification code',\n mfa_not_allowed: 'Verification method not allowed',\n mfa_invalid_method: 'Unknown verification method',\n recovery_failed: 'Recovery code wrong or already used',\n recovery_refused: 'Recovery code refused',\n not_linked: 'External account not linked',\n wrong_realm: 'User from another realm',\n },\n forbiddenAdmin: 'Your account cannot read login attempts. Ask an administrator for the admin:attempts:list operation.',\n forbiddenClient: 'Only the project administration group, with the Administrator badge active, sees the login attempts of this application.',\n loadErrorDetail: 'Could not load the attempts: {detail}',\n loadError: 'Could not load the login attempts.',\n },\n accountFeatures: {\n aiAgent: 'Connect an AI agent',\n aiAgentDescription: 'Generates the token and the MCP configuration to paste into Claude Code.',\n aiAgentKeywords: 'ai agent claude mcp assistant llm automation',\n aiAgentHelp: 'The agent uses a personal application token (x-app-token) with the permissions of the chosen access level. Revoke it under \"Application tokens\" when you no longer need it.',\n aiAgentStart: 'Connect agent',\n aiAgentServers: 'MCP servers',\n aiAgentAccess: 'Agent access',\n aiAgentReadOnly: 'Read only',\n aiAgentReadWrite: 'Read and write',\n aiAgentWriteHint: 'The agent will be able to change data on your behalf. Prefer read only when it is enough.',\n aiAgentReadOnlyServer: '{name} (read only)',\n aiAgentTokenName: 'AI agent ({date})',\n aiAgentGenerate: 'Generate configuration',\n aiAgentSelectServer: 'Choose at least one server.',\n aiAgentResult: 'Configuration ready',\n aiAgentResultHint: 'Paste into .mcp.json at the project root (Claude Code). The token is shown only now: copy it before finishing. Valid until {date}.',\n aiAgentCopy: 'Copy configuration',\n aiAgentCopied: 'Configuration copied. Do not share it: it contains your token.',\n aiAgentDone: 'Finish',\n aiAgentCreateError: 'Could not generate the agent token.',\n aiAgentUnavailable: 'Unavailable in this application: it is not connected to argos-admin.',\n activity: 'Account activity',\n activityDescription: 'Sign-ins and failed attempts in the last 90 days.',\n activityKeywords: 'login sign-in access history attempt failure ip browser security',\n activityFilter: 'Show',\n activityAll: 'All',\n activityFailures: 'Failures only',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Application: {app}',\n activityEmpty: 'Nothing in the last 90 days.',\n activityMore: 'Load more',\n activityShowing: '{shown} of {total}',\n activityLoadError: 'Could not load the account activity.',\n unknownIp: 'unknown',\n unknownApp: 'unnamed',\n idle: 'Sign out when idle',\n idleDescription: 'Signs out by itself after a while without use, with a warning first.',\n idleKeywords: 'idle inactivity timeout sign out automatic logout security lock',\n idleNever: 'Never',\n idleOption: '{minutes} min',\n idleLimitHint: 'This application signs out after at most {minutes} min without use.',\n idleWarningHeading: 'Your session is about to end',\n idleWarningText: { one: 'No activity for a while. The session ends in {count} second.', other: 'No activity for a while. The session ends in {count} seconds.' },\n idleStay: 'Stay signed in',\n idleLogout: 'Sign out now',\n startPage: 'Start page',\n startPageDescription: 'Where the application opens after signing in.',\n startPageKeywords: 'home opening login favorite last page',\n startHome: 'Home',\n startLast: 'Last visited page',\n startFavorite: 'Favorite: {name}',\n startPageHint: 'Mark pages as favorites to open on one of them.',\n defaultBadge: 'Default badge',\n defaultBadgeDescription: 'Access level you sign in with in this application, in any browser.',\n defaultBadgeKeywords: 'badge access level profile default login',\n defaultBadgeAuto: 'Automatic (the lowest level)',\n defaultBadgeSaved: 'Default badge saved. It applies from the next sign-in.',\n defaultBadgeError: 'Could not save the default badge.',\n defaultBadgeLoadError: 'Could not load your badges.',\n notices: 'Notifications',\n noticesDescription: 'The notices this application shows.',\n noticesKeywords: 'notification notice alert browser push',\n browserNotices: 'Browser notifications',\n browserNoticesDescription: 'System notification when the tab is in the background.',\n browserNoticesDenied: 'The browser blocked notifications for this site. Allow them in the browser settings.',\n browserNoticesUnsupported: 'This browser does not show notifications.',\n noticeOpen: 'Open',\n sync: 'Preferences in your account',\n syncDescription: 'Appearance, region, favorites and the other preferences follow you in any browser.',\n syncKeywords: 'sync cloud account browser preferences backup',\n syncSynced: 'Synced at {time}',\n syncSaving: 'Saving…',\n syncLocal: 'Only in this browser: the account is not available.',\n syncError: 'Could not sync. Try again.',\n syncNow: 'Sync now',\n },\n suggestions: {\n button: 'Suggest an improvement',\n buttonHint: 'Suggest an improvement for this page',\n modalTitle: 'Suggest an improvement',\n intro: 'Tell us what would make your work easier. Whoever manages the application gets the request and answers here.',\n kind: 'Type',\n kinds: { melhoria: 'Improvement', nova_funcionalidade: 'New feature', problema: 'Problem', outro: 'Other' },\n statuses: {\n em_analise: 'Under review', planejada: 'Planned', em_desenvolvimento: 'In development',\n concluida: 'Done', recusada: 'Declined',\n },\n legacyStatuses: { nova: 'New' },\n title: 'Title',\n titlePlaceholder: 'E.g.: Filter the list by date',\n titleRequired: 'Enter a title.',\n description: 'Description',\n descriptionHint: 'What you tried to do, what you expected and why it would help.',\n screen: 'Page',\n screenHint: 'Where the suggestion comes from. Change it if it is about another page.',\n send: 'Send suggestion',\n cancel: 'Cancel',\n sent: 'Suggestion sent. Thank you!',\n sendError: 'Could not send the suggestion. Try again.',\n similarHeading: 'Already requested on this page',\n similarHint: 'If it is the same request, support it instead of repeating it.',\n vote: 'I want this too',\n voted: 'You support this',\n votes: { one: '{count} supporter', other: '{count} supporters' },\n voteError: 'Could not register your support.',\n yours: 'Yours',\n mine: 'My suggestions',\n mineEmpty: 'You have not sent suggestions in this application yet.',\n mineError: 'Could not load your suggestions.',\n loadMore: 'Load more',\n statusFilter: 'Status',\n allStatuses: 'All',\n adminReply: 'Reply from the administrators',\n sentAt: 'Sent on {date}',\n boardLabel: 'Suggestions board',\n search: 'Search suggestions',\n kindFilter: 'Type',\n allKinds: 'All types',\n refresh: 'Refresh',\n boardFiltered: '{shown} of {total} suggestions',\n loadError: 'Could not load the suggestions.',\n moveError: 'Could not move the suggestion. The board was reloaded.',\n removedAuthor: 'Removed person',\n noScreen: 'No page',\n noDescription: 'No description.',\n requestedBy: 'Requested by',\n requestedAt: 'On',\n status: 'Status',\n statusSaved: 'Status updated.',\n statusError: 'Could not change the status.',\n history: 'History',\n historyEmpty: 'No activity yet.',\n eventStatus: '{actor} moved it from {from} to {to}',\n eventComment: '{actor} commented',\n someone: 'Someone',\n comment: 'Comment for the requester',\n commentHint: 'The requester sees it on the \"App suggestions\" page.',\n commentSend: 'Comment',\n commentSent: 'Comment sent.',\n commentError: 'Could not send the comment.',\n commentRequired: 'Write the comment.',\n viewLabel: 'View',\n viewBoard: 'Board',\n viewArchive: 'Archive',\n kpis: 'Suggestion indicators',\n kpiOpen: 'In progress',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Done in {days} days',\n kpiDoneToday: '+{count} today',\n kpiDoneNoneToday: 'None done today',\n kpiOverdueTrend: '+{count} since yesterday',\n kpiOverdueSteady: 'No new ones since yesterday',\n kpiSoon: 'Due soon',\n kpiMineHint: 'Open tasks with you among the assignees',\n kpiPriority: 'Open by priority',\n kpiPriorityNone: 'Nothing open',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Board filters',\n moreFilters: 'More filters',\n moreFiltersActive: 'More filters ({count})',\n allBoardStatuses: 'All statuses',\n newTaskIn: 'New task in {status}',\n newTaskOptions: 'Create in another column',\n columnOldest: 'Oldest {age} ago',\n columnOverdue: { one: '{count} overdue', other: '{count} overdue' },\n columnEmpty: 'No tasks in this column.',\n columnEmptyFiltered: 'No tasks match these filters.',\n columnEmptyHints: {\n em_analise: 'New requests land here for the team to review.',\n planejada: 'What was accepted and is waiting its turn.',\n em_desenvolvimento: 'What the team is working on right now.',\n concluida: 'Deliveries from the last {days} days stay here.',\n },\n duration: { days: '{d}d {h}h', hours: '{h}h {m}m', minutes: '{m}m' },\n createdOn: 'Created on {date}',\n dueWithin: 'On track · by {date}',\n dueLateDays: { one: 'Overdue by {count} day', other: 'Overdue by {count} days' },\n screenFilter: 'Page',\n allScreens: 'All pages',\n authorFilter: 'Requested by',\n allAuthors: 'Everyone',\n sort: 'Sort',\n sorts: { position: 'Board order', votes: 'Most supported', recent: 'Most recent' },\n sortHint: 'With this sorting, dragging only changes the column (the card goes to its end).',\n clearFilters: 'Clear filters',\n topVoted: 'Most supported',\n comments: { one: '{count} comment', other: '{count} comments' },\n statusSince: 'Since {date}',\n openScreen: 'Open the page',\n statusChange: 'Change the status',\n statusComment: 'Comment (optional)',\n statusCommentHint: 'Goes with the change; the person sees it in \"My suggestions\".',\n statusApply: 'Change status',\n archiveLabel: 'Suggestions archive',\n archiveSearch: 'Search the archive',\n archiveEmpty: 'Nothing in the archive',\n archiveEmptyHint: 'Declined suggestions and those done more than {days} days ago show up here.',\n archiveCount: { one: '{count} suggestion in the archive', other: '{count} suggestions in the archive' },\n closedOn: { concluida: 'Done on {date}', recusada: 'Declined on {date}' },\n pagination: 'Archive pages',\n reopen: 'Reopen',\n reopened: 'Suggestion reopened: it is back to Under review.',\n reopenError: 'Could not reopen the suggestion.',\n newTask: 'New task',\n addTaskPlaceholder: 'Task title (Enter creates)',\n taskCreated: 'Task created.',\n createError: 'Could not create the task.',\n saveError: 'Could not save. Try again.',\n kpiMine: 'Assigned to me',\n kpiOverdue: 'Overdue',\n assigneeFilter: 'Assignee',\n allAssignees: 'Any assignee',\n assigneeMine: 'Mine',\n assigneeNone: 'Unassigned',\n labelFilter: 'Label',\n allLabels: 'All labels',\n priorityFilter: 'Priority',\n allPriorities: 'All priorities',\n dueFilter: 'Due date',\n dueAny: 'Any due date',\n dueOverdueFilter: 'Overdue',\n dueSoonFilter: 'Due today or tomorrow',\n priority: 'Priority',\n priorities: { urgente: 'Urgent', alta: 'High', media: 'Medium', baixa: 'Low' },\n dueOn: 'Due {date}',\n dueToday: 'Due today',\n dueTomorrow: 'Due tomorrow',\n dueLate: 'Was due {date}',\n checklistSpoken: '{done} of {total} items done',\n moreAssignees: '+{count}',\n cardMenu: 'Actions for {key}',\n menuStatus: 'Change status',\n menuAssignMe: 'Assign to me',\n menuCopyLink: 'Copy link',\n menuCopyKey: 'Copy key',\n menuLabel: 'Labels',\n menuNoLabels: 'No labels in this app',\n menuPriority: 'Priority',\n menuArchive: 'Archive',\n menuRestore: 'Restore to the board',\n menuDelete: 'Delete',\n labelColorName: 'Color {n}',\n linkCopied: 'Link copied.',\n keyCopied: 'Key copied.',\n copyError: 'Could not copy.',\n deleteHeading: 'Delete {key}?',\n deleteMessage: 'The task, its checklist, comments and activity are removed for good. This cannot be undone.',\n deleteConfirm: 'Delete',\n deleted: 'Task deleted.',\n archivedToast: 'Task archived: it is in the Archive.',\n restoredToast: 'Task back on the board.',\n assignedToMe: 'Assigned to you.',\n archivedTag: 'Archived',\n taskLabel: 'Task',\n close: 'Close',\n editTitle: 'Edit title',\n editDescription: 'Edit description',\n save: 'Save',\n checklist: 'Checklist',\n checklistAdd: 'Add item',\n checklistPlaceholder: 'New item (Enter adds)',\n checklistOnCard: 'Show on card',\n checklistEmpty: 'No items yet.',\n checklistRemove: 'Remove \"{text}\"',\n checklistUp: 'Move \"{text}\" up',\n checklistDown: 'Move \"{text}\" down',\n tabComments: 'Comments',\n tabActivity: 'History',\n commentsEmpty: 'No comments yet.',\n activityEmpty: 'No activity yet.',\n commentInternal: 'Team only (internal: the requester does not see it)',\n internalTag: 'Internal',\n activity: {\n created: '{actor} created the task',\n title: '{actor} renamed it from \"{from}\" to \"{to}\"',\n description: '{actor} edited the description',\n kind: '{actor} changed the type from {from} to {to}',\n priority: '{actor} changed the priority from {from} to {to}',\n start_date: '{actor} set the start date to {to}',\n start_date_removed: '{actor} removed the start date',\n due_date: '{actor} set the due date to {to}',\n due_date_removed: '{actor} removed the due date',\n cover: '{actor} changed the cover',\n cover_removed: '{actor} removed the cover',\n checklist_on_card: '{actor} changed the checklist on the card',\n screen: '{actor} changed the page to {to}',\n assignee_added: '{actor} assigned it to {to}',\n assignee_removed: '{actor} removed {from} from the assignees',\n watcher_added: '{actor} added {to} as a watcher',\n watcher_removed: '{actor} removed {from} from the watchers',\n label_added: '{actor} added the label {to}',\n label_removed: '{actor} removed the label {from}',\n checklist_added: '{actor} added \"{to}\" to the checklist',\n checklist_done: '{actor} completed \"{to}\"',\n checklist_undone: '{actor} reopened \"{to}\"',\n checklist_renamed: '{actor} renamed \"{from}\" to \"{to}\" in the checklist',\n checklist_removed: '{actor} removed \"{from}\" from the checklist',\n archived: '{actor} archived the task',\n restored: '{actor} restored the task to the board',\n merged: '{actor} merged this into {to}',\n merged_here: '{actor} merged {to} here',\n unmerged: '{actor} unmerged this from {from}',\n unmerged_here: '{actor} unmerged {from} from here',\n other: '{actor} changed the task',\n },\n assignees: 'Assignees',\n assignMe: 'Assign to me',\n addAssignee: 'Add assignee',\n watchers: 'Watchers',\n addWatcher: 'Add watcher',\n removePerson: 'Remove {name}',\n peopleSearch: 'Search people',\n peopleEmpty: 'No one found.',\n nobody: 'No one',\n reporter: 'Reporter',\n originUser: 'Requested from the page',\n originTeam: 'Created by the team',\n startDate: 'Start',\n dueDate: 'Due',\n labels: 'Labels',\n addLabel: 'Labels',\n createLabel: 'Create the label \"{name}\"',\n labelColor: 'Label color',\n noLabels: 'No labels',\n screenOrigin: 'Source page',\n votesField: 'Supporters',\n createdAt: 'Created on',\n updatedAt: 'Updated on',\n lastChange: 'Last changed {when} by {actor}',\n lastChangeNoActor: 'Last changed {when}',\n key: 'Key',\n copyKey: 'Copy the key',\n newTaskHeading: 'New task',\n createTask: 'Create task',\n draftHint: 'Assignees, checklist and comments become available once the task is created.',\n assignMeOnCreate: 'Assign to me',\n appSuggestions: 'App suggestions',\n listView: 'Which suggestions to show',\n tabAll: 'All',\n tabMine: 'Mine',\n appSearch: 'Search by title, description or SUG-12',\n thisScreen: 'This page',\n appSorts: { votes: 'Most supported', recent: 'Recent' },\n appEmpty: 'No suggestions here yet',\n appEmptyHint: 'Be the first to suggest an improvement.',\n appEmptyFiltered: 'No suggestions match these filters.',\n appError: 'Could not load the app suggestions.',\n support: 'Support {count}',\n supported: 'Supported {count}',\n ownSupportHint: 'This is your suggestion: your interest already counts.',\n publicComments: 'Comments',\n publicCommentsEmpty: 'No comments from the administrators yet.',\n commentsError: 'Could not load the comments.',\n moreComments: 'More comments',\n appPagination: 'Suggestion pages',\n menuMerge: 'Merge into…',\n mergeHeading: 'Merge {key} into…',\n mergeIntro: 'Pick the main suggestion. Whoever asked for and supported this one moves to it; this one leaves the board and stays in the archive, with its comments.',\n mergeSearch: 'Search by key or title',\n mergeNone: 'No open suggestion to merge into.',\n mergeHasMerged: 'Other suggestions are merged into this one. Unmerge them before merging it into another.',\n mergePreview: '{votes} and {reporters} move to {key}.',\n mergeCalculating: 'Working out what moves…',\n mergePreviewError: 'Could not work out the merge.',\n reportersCount: { one: '{count} reporter', other: '{count} reporters' },\n mergeConfirmHeading: 'Merge {key} into {target}?',\n mergeConfirmMessage: 'You can undo it later with \"Unmerge\".',\n mergeConfirm: 'Merge',\n mergedToast: '{key} merged into {target}.',\n mergeError: 'Could not merge the suggestion.',\n mergedTag: 'Merged',\n mergedInto: 'Merged into {key}',\n mergedIntoHint: 'The supporters and reporters are on the main one; the comments stay here.',\n openMerged: 'Open {key}',\n unmerge: 'Unmerge',\n unmergeLabel: 'Unmerge {key}',\n unmergedToast: '{key} unmerged: back on the board.',\n reporters: 'Reporters',\n reporterAuthor: 'Author',\n reporterVia: 'via {key}',\n mergedHere: 'Merged here',\n mergedFrom: '{key} merged into {target}',\n mergedFromHint: 'Identical requests became one: follow it here.',\n buttonMenu: 'Suggestions',\n openPage: 'View app suggestions',\n screenPick: 'Screen',\n screenPickHint: 'The screen that should change. If it does not exist yet, choose \"New screen\".',\n screenPickPlaceholder: 'Search by screen name',\n newScreenOption: 'New screen (does not exist yet)',\n newScreenName: 'New screen name',\n newScreenHint: 'What you would call the screen and where in the menu it would go.',\n newScreenRequired: 'Name the new screen.',\n newScreenTag: 'New screen',\n waiting: { solicitante: 'Waiting on requester', responsaveis: 'Waiting on assignees' },\n waitingFilter: 'Waiting on',\n waitingAny: 'Any',\n waitingClear: 'Nobody (conversation up to date)',\n waitingSaved: 'Conversation status updated.',\n menuWaiting: 'Waiting on',\n groupFilter: 'Group',\n allGroups: 'All groups',\n requestingGroups: 'Requesting groups',\n noGroups: 'No group (created by the team)',\n unread: { zero: 'none new', one: '{count} new', other: '{count} new' },\n fromRequester: 'Requester',\n cardChecklist: { one: '{count} task ({done}/{count})', other: '{count} tasks ({done}/{count})' },\n requestedByName: 'Requested by {name}',\n tabSummary: 'Summary',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter sends; Shift+Enter adds a line break.',\n inbox: {\n label: 'Suggestions',\n comment: '{name}: {comment}',\n status: '{name} changed the status to {status}',\n },\n page: {\n title: 'App suggestions',\n allTitle: 'All suggestions',\n statusPart: '{count} {status}',\n description: 'Follow what you asked for, what your group asked for and the suggestions you are involved in, and talk to the assignees.',\n reasons: { autor: 'Mine', relator: 'Merged', envolvido: 'Involved', responsavel: 'Assignee', grupo: 'My group' },\n reasonHints: {\n autor: 'You asked for this suggestion.',\n relator: 'A request of yours was merged into this suggestion.',\n envolvido: 'The team added you as involved.',\n responsavel: 'You are an assignee of this suggestion.',\n grupo: 'Someone in your group asked for this suggestion.',\n },\n reasonFilter: 'Why I see it',\n allReasons: 'All',\n needsYou: 'Need your reply',\n sorts: { activity: 'Recent activity', recent: 'Newest', votes: 'Most supported' },\n empty: 'No suggestions here yet.',\n emptyHint: 'Ask for an improvement in \"Suggest an improvement\": it shows up here with the conversation.',\n emptyFiltered: 'No suggestions match these filters.',\n error: 'Could not load the suggestions.',\n count: { one: '{count} suggestion', other: '{count} suggestions' },\n pickOne: 'Pick a suggestion to see its details and conversation.',\n notFound: 'Suggestion not found, or you do not have access to it.',\n conversation: 'Conversation',\n conversationEmpty: 'Nobody has written yet.',\n conversationError: 'Could not load the conversation.',\n olderMessages: 'Older messages',\n reply: 'Your message',\n replyPlaceholder: 'Reply to the assignees, add more details…',\n replySend: 'Send',\n replyError: 'Could not send the message.',\n readOnly: 'You follow this suggestion through your group: you can support it, but the conversation belongs to the requesters, the people involved and the assignees.',\n team: 'Team',\n you: 'You',\n groups: 'Groups',\n details: 'Details',\n listLabel: 'Suggestions',\n filtersLabel: 'Filters',\n waitingYou: 'The assignees are waiting for your reply.',\n waitingTeam: 'Waiting on the assignees.',\n },\n planning: {\n viewSummary: 'Summary',\n viewTasks: 'Tasks',\n viewPlanning: 'Planning',\n viewSchedule: 'Schedule',\n viewRisks: 'Risks',\n viewWorkflow: 'Workflow',\n loadError: 'Could not load the planning.',\n saveError: 'Could not save. Try again.',\n retry: 'Try again',\n save: 'Save',\n cancel: 'Cancel',\n delete: 'Delete',\n edit: 'Edit',\n points: 'Points',\n pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },\n noEstimate: 'No estimate',\n backlog: 'Backlog',\n noSprint: 'No sprint in progress.',\n unassigned: 'Unassigned',\n dateRange: '{start} to {end}',\n summary: {\n activeSprint: 'Sprint in progress',\n sprintPoints: '{done} of {total} pts done',\n sprintCapacity: 'Capacity: {capacity} pts',\n openTasks: 'Open tasks',\n overdue: 'Overdue',\n mine: 'My tasks',\n mineEmpty: 'Nothing open assigned to you.',\n deadlines: 'Due in the next 7 days',\n deadlinesEmpty: 'Nothing overdue or due in the next 7 days.',\n topRisks: 'High risks',\n topRisksEmpty: 'No open high risk.',\n riskScore: 'Likelihood {likelihood} · impact {impact}',\n nextMilestone: 'Next milestone',\n nextMilestoneEmpty: 'No milestone ahead.',\n },\n tasks: {\n viewLabel: 'Show as',\n viewList: 'List',\n viewTable: 'Table',\n listLabel: 'Open tasks',\n gridCaption: 'Open tasks of the app',\n count: { zero: 'No open task', one: '{count} open task', other: '{count} open tasks' },\n open: 'Open',\n emptyHeading: 'No open task',\n emptyBody: 'Tasks under review, planned and in development show up here.',\n key: 'Key',\n title: 'Title',\n status: 'Status',\n priority: 'Priority',\n assignee: 'Assignee',\n sprint: 'Sprint',\n due: 'Due',\n },\n sprints: {\n heading: 'Backlog and sprints',\n hint: 'Drag a task into a sprint or back to the backlog.',\n readOnlyClosed: 'Closed sprints are read only.',\n new: 'New sprint',\n start: 'Start',\n close: 'Close',\n state: { planned: 'Planned', active: 'In progress', closed: 'Closed' },\n closeHeading: 'Close {name}?',\n closeMessage: 'Tasks that are not done go back to the backlog.',\n deleteHeading: 'Delete {name}?',\n deleteMessage: 'Its tasks go back to the backlog.',\n newHeading: 'New sprint',\n editHeading: 'Edit sprint',\n name: 'Name',\n nameRequired: 'Enter the sprint name.',\n goal: 'Goal',\n start_date: 'Start',\n end_date: 'End',\n datesRequired: 'Enter the start and the end.',\n datesOrder: 'The end cannot be before the start.',\n capacity: 'Capacity (pts)',\n activeExists: 'A sprint is already in progress: close it before starting another one.',\n moved: '{key} moved to {target}.',\n progressHeading: 'Progress of {name}',\n done: 'Done',\n committed: 'Committed',\n capacityUse: 'Capacity used',\n burndownCaption: 'Burndown of {name}: points left per day',\n day: 'Day',\n ideal: 'Ideal',\n remaining: 'Remaining',\n closed: 'Closed sprints',\n },\n schedule: {\n heading: 'Schedule',\n label: 'Task schedule',\n hint: 'Drag a bar to change the start and the due date. Only tasks with a date show up.',\n milestones: 'Milestones',\n newMilestone: 'New milestone',\n milestoneTitle: 'Title',\n milestoneDate: 'Date',\n milestoneRequired: 'Enter the milestone title and date.',\n removeMilestone: 'Delete the milestone {title}',\n rescheduled: '{key}: dates saved.',\n conflicts: '{key} starts before these finish: {list}.',\n workloadHeading: 'Team workload',\n workloadLabel: 'Points per person over the next 4 weeks',\n workloadHint: 'Reference capacity: {capacity} pts per person per week.',\n week: 'Week of {date}',\n noPeople: 'Nobody has a task with a date and an assignee.',\n },\n risks: {\n heading: 'Risks',\n label: 'Risks of the app tasks',\n hint: 'Each risk belongs to a task. Click a matrix cell to filter the list; click a risk to edit it.',\n new: 'New risk',\n newHeading: 'New risk',\n editHeading: 'Edit risk',\n title: 'Risk',\n titleRequired: 'Describe the risk.',\n owner: 'Owner',\n status: 'Status',\n mitigation: 'Mitigation',\n deleteHeading: 'Delete this risk?',\n statuses: { identified: 'Identified', mitigating: 'Mitigating', closed: 'Closed' },\n task: 'Task',\n taskPlaceholder: 'Choose the task at risk',\n taskRequired: 'Choose the task of the risk.',\n noTask: 'No task',\n level: 'Risk',\n levels: { low: 'Low', medium: 'Medium', high: 'High', critical: 'Critical' },\n ofTask: 'Risks',\n add: 'Add risk',\n empty: 'No risks on this task.',\n },\n workflow: {\n heading: 'Suggestion workflow',\n hint: 'The statuses requesters follow in \"My suggestions\". The workflow is the same for every app.',\n label: 'Suggestion status workflow',\n count: { zero: 'None on the board', one: '{count} on the board', other: '{count} on the board' },\n plan: 'Plan',\n start: 'Start',\n finish: 'Finish',\n refuse: 'Decline',\n reopen: 'Reopen',\n },\n detail: {\n estimate: 'Points',\n sprint: 'Sprint',\n backlogOption: 'Backlog (no sprint)',\n dependsOn: 'Depends on',\n dependsOnPlaceholder: 'Search task',\n dependencyCycle: 'This dependency would create a cycle between the tasks.',\n blockedBy: 'Blocked by {list}',\n },\n },\n },\n};\n","import { SpineMessages } from './spine-messages';\n\nexport const SPINE_MESSAGES_ES: SpineMessages = {\n meta: { locale: 'es' },\n inbox: {\n title: 'Notificaciones',\n button: { zero: 'Notificaciones', one: 'Notificaciones, {count} nueva', other: 'Notificaciones, {count} nuevas' },\n empty: 'Nada nuevo por aquí.',\n error: 'No se pudieron cargar las notificaciones.',\n retry: 'Intentar de nuevo',\n news: { one: '{count} novedad', other: '{count} novedades' },\n },\n header: {\n home: 'Inicio',\n apps: 'Aplicaciones',\n themeDark: 'Tema oscuro',\n themeLight: 'Tema claro',\n densityComfortable: 'Densidad cómoda',\n densityCompact: 'Densidad compacta',\n fullscreen: 'Pantalla completa',\n exitFullscreen: 'Salir de pantalla completa',\n user: 'Usuario',\n accessLevels: 'Niveles de acceso',\n settings: 'Configuración',\n appearance: 'Apariencia',\n shortcuts: 'Atajos de teclado',\n news: 'Novedades',\n newsUnseen: '{label} ({count})',\n logout: 'Salir',\n search: 'Búsqueda',\n searchPlaceholder: 'Buscar módulo o página…',\n searchFavorites: 'Favoritos',\n searchRecent: 'Abiertos hace poco',\n searchModules: 'Módulos',\n searchScreens: 'Pantallas',\n },\n navigation: {\n back: 'Volver',\n home: 'Inicio',\n favorite: 'Agregar esta página a favoritos',\n unfavorite: 'Quitar de favoritos',\n copyLink: 'Copiar enlace de la página',\n linkCopied: '¡Enlace copiado!',\n },\n sidebar: {\n modules: 'Módulos',\n moduleNavigation: 'Navegación de {module}',\n apps: 'Aplicaciones',\n openInNewTab: 'Abrir en una pestaña nueva',\n },\n pageBar: {\n favorite: 'Agregar esta página a favoritos',\n unfavorite: 'Quitar de favoritos',\n copyLink: 'Copiar enlace de la página',\n linkCopied: 'Enlace copiado',\n docs: 'Documentación de esta pantalla',\n trail: 'Estás en',\n },\n pagePanel: {\n notFoundTitle: 'No encontramos esta página',\n notFoundText: 'La dirección ya no existe. Cierra la pestaña y abre la página desde el menú.',\n },\n docs: {\n heading: 'Documentación',\n index: 'Índice de la documentación',\n search: 'Buscar en la documentación',\n noMatch: 'Ninguna página coincide con ese término.',\n empty: 'Ninguna pantalla tiene documentación todavía.',\n view: 'Vista de la documentación',\n usage: 'Cómo usar',\n technical: 'Especificación técnica',\n loading: 'Cargando la documentación',\n loadError: 'No se pudo cargar esta documentación.',\n invite: 'Elige una página en el índice para leer su documentación.',\n },\n news: {\n heading: 'Novedades',\n close: 'Cerrar',\n unseen: 'Nueva',\n toastOne: 'Novedad: {title}',\n toastMany: '{count} novedades',\n see: 'Ver',\n loading: 'Cargando las novedades…',\n empty: 'Todavía no hay novedades.',\n loadError: 'No se pudieron cargar las novedades.',\n retry: 'Intentar de nuevo',\n pages: 'Lista de novedades',\n search: 'Buscar novedades',\n searchPlaceholder: 'Buscar novedades…',\n filters: 'Filtrar novedades',\n filterAll: 'Todas',\n filterUnread: 'No leídas',\n filterFavorites: 'Favoritas',\n favorite: 'Marcar \"{title}\" como favorita',\n unfavorite: 'Quitar \"{title}\" de las favoritas',\n noResults: 'No se encontraron novedades.',\n home: 'Inicio',\n changes: 'Qué cambió',\n before: 'Antes',\n after: 'Ahora',\n markUnread: 'Marcar como no leída',\n gotIt: 'Entendido',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementación',\n kindAlteracao: 'Cambio',\n publishedOn: 'Publicada el {date}',\n editedOn: 'Editada el {date}',\n body: 'Texto de la novedad',\n detailError: 'No se pudo abrir esta novedad. Puede que ya no esté disponible.',\n },\n autoServiceNews: {\n caption: 'Novedades de la app',\n empty: 'No hay novedades registradas. Quien entra en la app ve aquí lo que cambió.',\n newNews: 'Nueva novedad',\n editNews: 'Editar novedad',\n newNewsIntro: 'Complete la información de la novedad que verán los usuarios.',\n editNewsIntro: 'Actualice la información de la novedad que verán los usuarios.',\n sectionMain: 'Información principal',\n sectionMainHint: 'El título y el resumen aparecen en la lista de novedades y en la tarjeta de Inicio.',\n sectionBody: 'Contenido de la novedad',\n sectionBodyHint: 'Describa los detalles de la novedad. Use formato, listas y enlaces, y destaque lo importante.',\n sectionPublish: 'Publicación',\n sectionUntil: 'Vigencia (opcional)',\n sectionAudience: 'Público',\n preview: 'Vista previa en Inicio',\n previewTitle: 'Título de la novedad',\n previewSummary: 'El resumen aparece aquí.',\n previewNow: 'Publicada al guardar',\n tipTitle: 'Consejo:',\n tipText: 'un título corto y un resumen directo llaman más la atención en Inicio.',\n untilDate: 'Último día en que aparece',\n audienceGroups: 'Grupos',\n kind: 'Tipo de publicación',\n kindInformativo: 'Informativo',\n kindImplementacao: 'Implementación',\n kindAlteracao: 'Cambio',\n sectionBodyHintImpl: 'Una introducción corta, si quiere, y la lista de lo nuevo.',\n sectionBodyHintAlt: 'Muestre cómo era antes y cómo quedó ahora. La introducción es opcional.',\n intro: 'Introducción (opcional)',\n items: 'Qué cambió',\n itemsHint: 'Un cambio por ítem, hasta 300 caracteres. De 1 a 30 ítems.',\n itemPlaceholder: 'Describa un cambio',\n itemsEmpty: 'Todavía no hay cambios en la lista.',\n before: 'Antes',\n after: 'Ahora',\n colTitle: 'Título',\n colPublishedAt: 'Publicación',\n colUntil: 'Vigencia',\n colAudience: 'Público',\n colAuthor: 'Autor',\n colStatus: 'Estado',\n statusScheduled: 'Programada',\n statusPublished: 'Publicada',\n statusExpired: 'Vencida',\n audienceAll: 'Todos',\n noUntil: 'Sin fin',\n title: 'Título',\n summary: 'Resumen',\n summaryHint: 'Escriba un resumen corto y directo. Hasta 300 caracteres.',\n body: 'Texto',\n bodyHint: 'Se abre cuando la persona hace clic en la novedad.',\n publishDate: 'Fecha de publicación',\n publishTime: 'Hora de publicación',\n publishHint: 'Una fecha futura deja la novedad programada. Sin fecha, se publica de inmediato.',\n until: 'Vigencia',\n untilHint: 'Si no la informa, la novedad no vence.',\n audience: 'Público',\n audienceHint: 'Grupos con acceso a la app. Sin grupo, todos los que entran la ven.',\n confirmDeleteHeading: 'Eliminar novedad',\n confirmDelete: '¿Eliminar la novedad \"{title}\"? Desaparece para todos, incluso para quien aún no la vio.',\n saveError: 'No se pudo guardar la novedad.',\n loadError: 'No se pudieron cargar las novedades.',\n errors: {\n invalidTitle: 'Ingrese un título de hasta 140 caracteres.',\n invalidSummary: 'El resumen tiene hasta 300 caracteres.',\n bodyTooLarge: 'El texto supera el límite de 64 KB.',\n invalidPublishedAt: 'Fecha u hora de publicación inválida.',\n invalidUntil: 'Fecha de vigencia inválida.',\n invalidGroupIds: 'Algún grupo del público ya no tiene acceso a la app. Revise el público.',\n untilBeforePublish: 'La vigencia no puede terminar antes de la publicación.',\n invalidKind: 'Tipo de publicación inválido.',\n invalidItems: 'La implementación necesita de 1 a 30 cambios, de hasta 300 caracteres cada uno.',\n invalidCompare: 'El cambio necesita el antes y el ahora.',\n compareTooLarge: 'El antes o el ahora supera el límite de 32 KB.',\n },\n },\n setup: {\n label: 'Configuración inicial',\n step: 'Paso {current} de {total}',\n skip: 'Omitir',\n back: 'Atrás',\n next: 'Continuar',\n finish: 'Empezar',\n close: 'Entendido',\n greeting: 'Hola, {name}. Hazlo a tu manera.',\n greetingAnonymous: 'Hazlo a tu manera.',\n appearanceIntro: 'Elige cómo se ven los sistemas para ti. La elección vale en todos ellos y se puede cambiar cuando quieras, en la configuración.',\n preview: 'Vista previa',\n previewPage: 'Inicio',\n essentialsTitle: 'Lo esencial',\n essentialsIntro: 'Cuatro cosas que ayudan en el día a día.',\n searchTitle: 'Busca cualquier pantalla',\n searchText: 'Pulsa {key} o usa la búsqueda del encabezado para encontrar pantallas, favoritos y lo que abriste hace poco.',\n tabsTitle: 'Pestañas y paneles',\n tabsText: 'Cada pantalla se abre en una pestaña. Arrastra la pestaña a un lado del área de trabajo para ver dos pantallas juntas.',\n favoritesTitle: 'Favoritos',\n favoritesText: 'Marca el corazón de una pantalla para que aparezca en el inicio y arriba en la búsqueda.',\n settingsTitle: 'Configuración',\n settingsText: 'Apariencia, región, accesibilidad y seguridad de la cuenta están en el menú de tu perfil, o en {key}.',\n },\n shortcuts: {\n heading: 'Atajos de teclado',\n hint: 'Consejo: pulsa {key} en cualquier momento para volver a abrir este panel.',\n essentials: 'Repasar lo esencial',\n dismiss: 'Entendido',\n openSearch: 'Abrir la búsqueda rápida',\n goHome: 'Ir al Inicio',\n goFavorite: 'Ir al favorito n.º 1 a 9',\n history: 'Atrás / adelante en el historial',\n openSettings: 'Abrir la configuración',\n toggleSidebar: 'Abrir / contraer el menú lateral',\n toggleTheme: 'Alternar tema claro / oscuro',\n fullscreen: 'Pantalla completa',\n logout: 'Salir (cerrar sesión)',\n showHelp: 'Mostrar este panel de atajos',\n closeOverlay: 'Cerrar diálogo / panel abierto',\n },\n settings: {\n heading: 'Configuración',\n appearance: 'Apariencia',\n appearanceKeywords: 'visual colores tema diseño',\n theme: 'Tema',\n themeDescription: 'Claro, oscuro o el del sistema operativo.',\n themeKeywords: 'modo oscuro dark light nocturno',\n themeLight: 'Claro',\n themeDark: 'Oscuro',\n themeSystem: 'Sistema',\n accent: 'Color principal',\n accentDescription: 'Familia de colores del encabezado, los botones y los destacados.',\n accentKeywords: 'familia paleta color acento',\n density: 'Densidad',\n densityDescription: 'Compacta muestra más información en pantalla.',\n densityKeywords: 'espaciado tamaño compacto',\n comfortable: 'Cómoda',\n compact: 'Compacta',\n font: 'Fuente',\n fontDescription: 'Tipografía de toda la aplicación.',\n fontKeywords: 'tipografía letra texto roboto rubik figtree geist',\n sidebar: 'Menú lateral',\n sidebarDescription: 'Cómo se abre y se cierra el menú lateral.',\n sidebarKeywords: 'sidebar navegación barra lateral',\n sidebarHelp: 'Automático: se abre al acercar el puntero. Fijo: siempre abierto. Compacto: muestra solo los íconos.',\n splitTabs: 'Dividir pestañas',\n splitTabsDescription: 'Abrir paneles lado a lado o uno debajo del otro, cada uno con sus pestañas. Desactivado, las pestañas abiertas quedan en un solo panel.',\n splitTabsKeywords: 'dividir pantalla paneles lado a lado pestañas comparar split',\n sidebarAuto: 'Automático',\n sidebarFixed: 'Fijo',\n sidebarCompact: 'Compacto',\n region: 'Región',\n regionKeywords: 'idioma localización horario fecha hora semana',\n language: 'Idioma',\n languageDescription: 'Se aplica al instante, sin recargar.',\n languageKeywords: 'idioma lengua traducción inglés español portugués',\n languageAuto: 'Predeterminado del sistema ({language})',\n timeZone: 'Zona horaria',\n timeZoneKeywords: 'timezone hora utc gmt',\n timeZoneHint: 'Para fechas y horas. Ahora: {now}',\n timeZoneAuto: 'Automático ({zone})',\n hourCycle: 'Formato de hora',\n hourCycleHint: 'Ahora: {now}',\n hourCycleKeywords: 'reloj 24h 12h am pm horario',\n hourCycleAuto: 'Automático',\n hourCycle24: '24 horas',\n hourCycle12: '12 horas',\n weekStart: 'Primer día de la semana',\n weekStartDescription: 'Para calendarios y selectores de fecha.',\n weekStartKeywords: 'semana calendario domingo lunes',\n weekStartAuto: 'Automático',\n shortcuts: 'Atajos',\n shortcutsDescription: 'Pulsa ? en cualquier pantalla para ver esta lista.',\n shortcutsKeywords: 'teclado teclas',\n setup: 'Configuración inicial',\n setupDescription: 'Abre de nuevo la elección de apariencia del primer acceso.',\n setupKeywords: 'configuración inicial primer acceso apariencia bienvenida',\n redoSetup: 'Rehacer',\n essentials: 'Lo esencial',\n essentialsDescription: 'Búsqueda, pestañas, favoritos y configuración en un resumen.',\n essentialsKeywords: 'ayuda consejos búsqueda pestañas favoritos presentación',\n showEssentials: 'Ver',\n accessibility: 'Accesibilidad',\n accessibilityKeywords: 'accesibilidad lectura visión',\n textSize: 'Tamaño del texto',\n textSizeDescription: 'Agranda el texto y los controles de todas las pantallas.',\n textSizeKeywords: 'zoom fuente letra más grande ampliar',\n motion: 'Reducir animaciones',\n motionDescription: 'Sistema sigue la computadora o el celular.',\n motionKeywords: 'animación movimiento transición reducido mareo',\n motionSystem: 'Sistema',\n motionReduce: 'Siempre',\n motionFull: 'Nunca',\n help: 'Ayuda',\n helpKeywords: 'ayuda novedades configuración inicial esencial presentación',\n news: 'Novedades',\n newsDescription: 'Lo que cambió en las últimas versiones.',\n newsKeywords: 'novedades versión lanzamiento changelog',\n showNews: 'Ver novedades',\n browserData: 'Datos del navegador',\n browserDataDescription: 'Guardados solo en este navegador, para tu cuenta.',\n browserDataKeywords: 'privacidad limpiar borrar historial datos',\n recentPages: 'Páginas recientes',\n recentPagesKeywords: 'historial visitadas recientes',\n recentSearches: 'Búsquedas recientes',\n recentSearchesKeywords: 'búsqueda historial',\n favorites: 'Favoritos',\n favoritesKeywords: 'favoritos estrella',\n pagesCount: { zero: 'Ninguna página guardada', one: '{count} página guardada', other: '{count} páginas guardadas' },\n searchesCount: { zero: 'Ninguna búsqueda guardada', one: '{count} búsqueda guardada', other: '{count} búsquedas guardadas' },\n clear: 'Limpiar',\n confirmClear: 'Confirmar',\n cancel: 'Cancelar',\n recentPagesCleared: 'Páginas recientes borradas.',\n recentSearchesCleared: 'Búsquedas recientes borradas.',\n favoritesCleared: 'Favoritos borrados.',\n restorePreferences: 'Preferencias',\n restorePreferencesDescription: 'Apariencia, accesibilidad y formatos vuelven a los valores predeterminados.',\n restorePreferencesHelp: 'Vuelven a lo predeterminado: tema, color principal, densidad, fuente, menú lateral, dividir pestañas, tamaño del texto, animaciones, formato de hora y primer día de la semana. El idioma, la zona horaria y los atajos de una sola tecla se mantienen.',\n restorePreferencesKeywords: 'restaurar predeterminado restablecer reset preferencias',\n restore: 'Restaurar',\n confirmRestore: 'Confirmar',\n preferencesRestored: 'Preferencias restauradas.',\n account: 'Cuenta',\n accountKeywords: 'perfil usuario login nivel salir',\n user: 'Usuario',\n accessLevel: 'Nivel de acceso',\n accessLevelKeywords: 'credencial badge perfil permiso grupo',\n session: 'Sesión',\n sessionDescription: 'Se renueva sola mientras la aplicación esté abierta.',\n sessionKeywords: 'expiración token login',\n sessionUnknown: 'No informado',\n sessionExpired: 'Expiró a las {time}',\n sessionExpiresIn: 'Expira en {minutes} min (a las {time})',\n sessionExpiresAt: 'Expira a las {time}',\n accessToken: 'Token de acceso',\n accessTokenDescription: 'Para probar una API en tu nombre. No lo compartas.',\n accessTokenKeywords: 'jwt bearer api desarrollador',\n copy: 'Copiar',\n moreAbout: 'Más sobre {label}',\n appTokens: 'Tokens de aplicación',\n appTokensDescription: 'Para usar la aplicación fuera de la interfaz: un MCP, un script.',\n appTokensKeywords: 'token app mcp api clave pat x-app-token automatización script integración',\n appTokensHelp: 'El token vale solo para esta aplicación, con los permisos del nivel de acceso elegido, y vence en como máximo 1 año. Envíalo en el encabezado x-app-token.',\n groups: 'Grupos',\n groupsDescription: 'Los grupos de esta aplicación de los que participas. Elige uno para ver los miembros.',\n groupsKeywords: 'grupo grupos miembros equipo personas función administrador editor miembro incluir quitar acceso',\n groupRole: 'Tu función: {role} · Credencial: {badge}',\n groupRoleDisabled: 'Tu función: {role} · Grupo desactivado',\n logout: 'Salir',\n logoutDescription: 'Cierra la sesión en este navegador.',\n logoutKeywords: 'logout desconectar',\n mfa: 'MFA',\n mfaDescription: 'Verificación en dos pasos de tu cuenta en Argos.',\n mfaKeywords: 'seguridad argos contraseña autenticación mfa 2fa dos factores dos pasos verificación',\n signedInAccount: 'Cuenta de Argos',\n signedInRealm: 'Realm {realm}',\n twoFactor: 'Verificación en dos pasos',\n twoFactorDescription: 'Un código además de la contraseña para entrar.',\n twoFactorKeywords: 'mfa 2fa totp autenticador authenticator código correo método dispositivo celular',\n recoveryCodes: 'Códigos de recuperación',\n recoveryCodesDescription: 'Para entrar si pierdes el dispositivo.',\n recoveryCodesKeywords: 'respaldo recuperación perdí celular dispositivo mfa 2fa',\n sessions: 'Sesiones y dispositivos',\n sessionsDescription: 'Dónde está conectada tu cuenta.',\n sessionsKeywords: 'dispositivos navegador ip cerrar desconectar salir conectados',\n sessionsSection: 'Sesiones',\n sessionsSectionDescription: 'Esta sesión, los tokens de aplicación y los dispositivos conectados.',\n sessionsSectionKeywords: 'sesión sesiones token tokens dispositivos login seguridad',\n about: 'Acerca de',\n aboutKeywords: 'versión build entorno dependencias soporte',\n application: 'Aplicación',\n version: 'Versión',\n versionKeywords: 'release',\n buildDate: 'Fecha del build',\n environment: 'Entorno',\n environmentKeywords: 'homologación producción',\n links: 'Enlaces',\n linksKeywords: 'repositorio documentación bug issue',\n docs: 'Documentación',\n reportIssue: 'Informar un problema',\n repository: 'Repositorio',\n dependencies: 'Dependencias',\n dependenciesDescription: 'Versiones declaradas en el package.json de esta aplicación.',\n dependenciesKeywords: 'angular hermes rxjs apollo graphql',\n supportInfo: 'Información para soporte',\n supportInfoDescription: 'Versión, entorno, navegador y preferencias, para pegar en el ticket.',\n supportInfoKeywords: 'ayuda ticket diagnóstico',\n noSessionToken: 'No hay ningún token de sesión disponible.',\n tokenCopied: 'Token copiado. No lo compartas: da acceso a tu cuenta hasta que expire.',\n supportCopied: 'Información copiada. Pégala en el ticket de soporte.',\n copyBlocked: 'No se pudo copiar. El navegador bloqueó el acceso al portapapeles.',\n },\n support: {\n application: 'Aplicación',\n version: 'Versión',\n build: 'Build',\n environment: 'Entorno',\n page: 'Página',\n browser: 'Navegador',\n screen: 'Pantalla',\n theme: 'Tema',\n themeValue: '{theme} ({mode}) · familia {family} · densidad {density} · fuente {font}',\n timeZone: 'Zona horaria',\n accessLevel: 'Nivel de acceso',\n date: 'Fecha',\n },\n appTokens: {\n unavailable: 'No disponible en esta aplicación: no está conectada a argos-admin.',\n created: 'Token \"{name}\" creado — cópialo ahora, no se volverá a mostrar.',\n sendHeader: 'Envíalo en el encabezado <code>x-app-token</code>. Vale hasta el {date}, con los permisos del nivel de acceso elegido.',\n copyToken: 'Copiar token',\n saved: 'Ya lo guardé',\n loading: 'Cargando…',\n expiredOn: 'Expiró el {date}',\n expiresOn: 'Expira el {date}',\n lastUsed: 'Último uso: {date}',\n never: 'nunca',\n revoke: 'Revocar',\n confirmRevoke: 'Confirmar revocación',\n empty: 'Todavía no tienes tokens en esta aplicación.',\n noBadges: 'No tienes ningún nivel de acceso en esta aplicación para generar tokens.',\n appOnly: 'Aplicación: <strong>{name}</strong> — el token solo vale para ella.',\n accessLevel: 'Nivel de acceso',\n name: 'Nombre',\n namePlaceholder: 'Ej.: MCP de Claude en el portátil',\n nameRequired: 'Ponle un nombre para reconocer el token después.',\n nameMax: 'Hasta 80 caracteres.',\n validity: 'Validez',\n days30: '30 días',\n days90: '90 días',\n months6: '6 meses',\n year1: '1 año',\n create: 'Crear token',\n cancel: 'Cancelar',\n newToken: 'Nuevo token',\n validCount: '{valid} de {max} válidos',\n limit: 'Límite alcanzado: revoca un token para crear otro.',\n loadError: 'No se pudieron cargar tus tokens.',\n badgesError: 'No se pudieron cargar tus niveles de acceso.',\n createError: 'No se pudo crear el token.',\n copied: 'Token copiado.',\n copyFailed: 'No se pudo copiar. Selecciona el texto y cópialo manualmente.',\n revoked: 'Token \"{name}\" revocado. Puede tardar hasta 2 minutos en dejar de funcionar en todos los sistemas.',\n revokeError: 'No se pudo revocar el token.',\n },\n myGroups: {\n loading: 'Cargando…',\n loadError: 'No se pudieron cargar los miembros del grupo.',\n roleAdministrator: 'Administrador',\n roleEditor: 'Editor',\n roleMember: 'Miembro',\n listLabel: 'Tus grupos',\n back: 'Volver a los grupos',\n you: 'tú',\n membersCount: { zero: 'Ningún miembro', one: '{count} miembro', other: '{count} miembros' },\n matchesCount: { zero: 'Ningún miembro encontrado', one: '{count} miembro encontrado', other: '{count} miembros encontrados' },\n empty: 'Ningún miembro en este grupo.',\n noMatches: 'Ningún miembro coincide con esta búsqueda.',\n filterMembers: 'Buscar miembro',\n loadingProgress: 'Cargando miembros… {loaded} de {total}',\n partialResults: 'La lista todavía está cargando: el resultado puede crecer.',\n loadIncomplete: 'No se pudieron cargar todos los miembros ({loaded} de {total}).',\n retry: 'Intentar de nuevo',\n readOnly: 'Como miembro, solo ves quién está en el grupo.',\n addMember: 'Incluir miembro',\n addHeading: 'Incluir en {group}',\n search: 'Persona',\n searchPlaceholder: 'Nombre, login o correo',\n searchHint: 'Escribe al menos 2 letras.',\n searching: 'Buscando…',\n noResults: 'No se encontró a nadie.',\n searchError: 'No se pudo buscar personas.',\n alreadyMember: 'ya es miembro',\n role: 'Función',\n editorAddsMembers: 'Como Editor, incluyes personas como Miembro.',\n add: 'Incluir',\n cancel: 'Cancelar',\n added: '{name} entró al grupo.',\n addError: 'No se pudo incluir el miembro.',\n roleOf: 'Función de {name}',\n roleChanged: 'Función de {name}: {role}.',\n roleError: 'No se pudo cambiar la función.',\n remove: 'Quitar',\n confirmRemove: 'Confirmar',\n removed: '{name} salió del grupo.',\n removeError: 'No se pudo quitar el miembro.',\n },\n accountSecurity: {\n loading: 'Cargando…',\n loadError: 'No se pudo cargar tu cuenta de Argos.',\n retry: 'Intentar de nuevo',\n methodTotp: 'Aplicación de autenticación',\n methodEmail: 'Correo electrónico',\n methodSms: 'SMS',\n active: 'Activo',\n activeWithDetail: 'Activo · {detail}',\n notRegistered: 'No registrado',\n unavailable: 'No disponible',\n requiredHint: 'Obligatoria en este entorno: mantén al menos un método.',\n add: 'Agregar',\n replaceDevice: 'Cambiar dispositivo',\n remove: 'Quitar',\n cancel: 'Cancelar',\n confirm: 'Confirmar',\n removeTitle: '¿Quitar {method}?',\n removeHint: 'Ya no podrás usar este método para iniciar sesión.',\n removeLastHint: 'Sin ningún método, los códigos de recuperación también dejan de valer.',\n reauthTitle: 'Confirma tu identidad',\n reauthHint: 'Por seguridad, confirma antes de continuar. Vale por 5 minutos.',\n reauthHow: 'Cómo confirmar',\n reauthPassword: 'Contraseña',\n reauthRecoveryCode: 'Código de recuperación',\n currentPassword: 'Contraseña actual',\n passwordRequired: 'Ingresa la contraseña.',\n recoveryCode: 'Código de recuperación',\n recoveryCodePlaceholder: 'XXXXX-XXXXX',\n recoveryCodeRequired: 'Ingresa el código.',\n recoveryCodeLength: 'El código tiene 10 letras y números.',\n sendEmailCode: 'Enviar un código al correo registrado',\n sixDigitCode: 'Código de 6 dígitos',\n totpTitle: 'Escanea el código QR con la aplicación de autenticación',\n qrAlt: 'Código QR para configurar la aplicación de autenticación',\n manualKey: '¿Sin cámara? Escribe la clave:',\n appCode: 'Código de la aplicación',\n emailTitle: 'Registrar correo electrónico',\n email: 'Correo electrónico',\n emailPlaceholder: 'nombre@empresa.com',\n emailRequired: 'Ingresa el correo electrónico.',\n emailInvalid: 'Ingresa un correo electrónico válido.',\n sendCode: 'Enviar código',\n emailCodeTitle: 'Confirma el correo electrónico',\n emailCodeHint: 'Escribe el código de 6 dígitos enviado a {email}.',\n codesRemaining: { zero: 'Ningún código disponible', one: '1 código disponible', other: '{count} códigos disponibles' },\n codesHint: 'Cada uno vale una vez. Generar nuevos invalida los anteriores.',\n codesNeedMethod: 'Registra un método de verificación para generar códigos de recuperación.',\n generateCodes: 'Generar códigos',\n regenerateCodes: 'Generar códigos nuevos',\n codesTitle: 'Tus códigos de recuperación',\n codesShownOnce: 'Guárdalos en un lugar seguro: no se volverán a mostrar. Cada uno vale una vez.',\n copyCodes: 'Copiar',\n downloadCodes: 'Descargar .txt',\n codesCopied: 'Códigos copiados.',\n copyFailed: 'No se pudo copiar. Selecciona los códigos y cópialos manualmente.',\n codesSaved: 'Ya guardé los códigos',\n codesFileHeader: 'Códigos de recuperación de Argos (cada uno vale una vez)',\n codesFileName: 'codigos-de-recuperacion.txt',\n notices: {\n methodAdded: 'Método registrado.',\n deviceReplaced: 'Dispositivo cambiado. El anterior ya no genera códigos válidos.',\n methodRemoved: 'Método quitado.',\n codesRegenerated: 'Códigos de recuperación generados. Los anteriores ya no valen.',\n reauthCodeSent: 'Enviamos un código al correo registrado.',\n },\n errors: {\n generic: 'No se pudo completar. Intenta de nuevo.',\n network: 'No se pudo conectar con Argos. Revisa la conexión e intenta de nuevo.',\n login_required: 'La sesión de este inicio de sesión terminó en Argos. Inicia sesión de nuevo para administrar la cuenta.',\n invalid_token: 'La sesión de este inicio de sesión terminó en Argos. Inicia sesión de nuevo para administrar la cuenta.',\n reauthentication_required: 'La confirmación de identidad venció. Confirma de nuevo para continuar.',\n invalid_password: 'Contraseña incorrecta.',\n account_locked: 'Demasiados intentos con la contraseña. La cuenta quedó bloqueada unos minutos.',\n invalid_code: 'Código incorrecto.',\n invalid_recovery_code: 'Código de recuperación inválido o ya usado.',\n code_expired: 'El código venció. Pide otro.',\n code_not_requested: 'Pide el código antes de escribirlo.',\n too_many_attempts: 'Demasiados intentos. Espera unos minutos e intenta de nuevo.',\n too_many_requests: 'Espera un poco antes de pedir otro código.',\n mfa_method_not_allowed: 'Este método no se acepta en este entorno.',\n mfa_method_not_found: 'Este método ya no estaba registrado.',\n mfa_last_method: 'La verificación en dos pasos es obligatoria: mantén al menos un método.',\n invalid_email: 'Ingresa un correo electrónico válido.',\n enrollment_not_started: 'El registro venció. Empieza de nuevo.',\n sms_not_available: 'SMS no disponible.',\n mfa_required_for_recovery_codes: 'Registra un método de verificación antes de generar códigos.',\n session_not_found: 'La sesión ya se había cerrado.',\n },\n sessionsEmpty: 'Ninguna sesión activa.',\n thisSession: 'Esta sesión',\n thisBrowser: 'Este navegador',\n appsOnly: 'Solo aplicaciones',\n sessionDetail: 'IP {ip} · último uso {date}',\n unknownIp: 'desconocida',\n sessionSince: 'Desde {date}',\n sessionApps: 'Aplicaciones: {apps}',\n unnamedApp: 'Aplicación',\n endSession: 'Cerrar',\n confirmEndSession: 'Confirmar cierre',\n endOthers: 'Cerrar todas las demás',\n endOthersConfirm: {\n one: '¿Cerrar la otra sesión? Las aplicaciones abiertas en ella pedirán iniciar sesión de nuevo.',\n other: '¿Cerrar las {count} otras sesiones? Las aplicaciones abiertas en ellas pedirán iniciar sesión de nuevo.',\n },\n sessionEndedNotice: 'Sesión cerrada.',\n othersEndedNotice: { zero: 'Ninguna sesión cerrada.', one: '1 sesión cerrada.', other: '{count} sesiones cerradas.' },\n },\n ratings: {\n rateScreen: 'Evaluar esta pantalla',\n rateApp: 'Evaluar {app}',\n ratedApp: 'Tu evaluación de {app}',\n heading: 'Haz tu evaluación',\n subheading: 'Aprovecha para dejar tu opinión',\n aboutScreen: 'Pantalla: {screen}',\n aboutApp: '{app} en general',\n score: 'Tu nota',\n scoreOf: '{value} de 10',\n scoreNamed: '{value} de 10 — {name}',\n scoreShort: '{value}/10',\n scoreNames: { 1: 'Mala', 2: 'Regular', 3: 'Buena', 4: 'Muy buena', 5: 'Excelente' },\n noScore: 'Sin nota',\n scaleHint: 'De 0 a 10: cada estrella vale 2 y media estrella, 1. Las flechas cambian de media en media; hacer clic de nuevo en la primera media estrella da 0.',\n comment: 'Comentario',\n commentPlaceholder: 'Qué funcionó, qué podría mejorar (opcional)',\n submit: 'Evaluar',\n update: 'Actualizar',\n previous: 'Evaluaste el {date}. Puedes cambiarla cuando quieras.',\n scoreRequired: 'Elige una nota de 0 a 10.',\n loading: 'Cargando tu evaluación…',\n thanks: '¡Gracias por tu evaluación!',\n updated: 'Evaluación actualizada. ¡Gracias!',\n saveError: 'No se pudo enviar la evaluación. Inténtalo de nuevo.',\n period: 'Período',\n periods: { all: 'Todo', d7: '7 días', d30: '30 días', d90: '90 días' },\n refresh: 'Actualizar',\n appCard: 'La herramienta',\n screensCard: 'Las pantallas',\n appCardHint: 'Evaluación general',\n screensCardHint: 'Evaluación general de las pantallas',\n scoreMax: '/10',\n average: 'Promedio',\n total: { zero: 'Ninguna evaluación', one: '1 evaluación', other: '{count} evaluaciones' },\n comments: { zero: 'ningún comentario', one: '1 comentario', other: '{count} comentarios' },\n noRatings: 'Todavía no hay evaluaciones en el período.',\n distribution: 'Distribución de las notas',\n distributionRow: 'Nota {score}: {count} ({share})',\n ranking: 'Evaluaciones por pantalla y área',\n rankingHint: 'Compara las pantallas. Haz clic en una para ver sus evaluaciones.',\n sort: 'Orden',\n sorts: { worst: 'Peores primero', best: 'Mejores primero', most: 'Más evaluadas' },\n noScreens: 'Ninguna pantalla evaluada en el período.',\n filterByScreen: 'Ver las evaluaciones de {screen}',\n recent: 'Evaluaciones recientes',\n recentHint: 'De la más nueva a la más antigua.',\n filterScope: 'Qué se evaluó',\n allScopes: 'Herramienta y pantallas',\n tool: 'La herramienta',\n screens: 'Las pantallas',\n filterScreen: 'Pantalla',\n allScreens: 'Todas las pantallas',\n filterScore: 'Nota',\n allScores: 'Todas las notas',\n withComment: 'Mostrar solo con comentario',\n clearFilters: 'Limpiar filtros',\n noComment: 'Sin comentario.',\n itemActions: 'Acciones de la evaluación',\n copyComment: 'Copiar comentario',\n commentCopied: 'Comentario copiado.',\n copyFailed: 'No se pudo copiar el comentario.',\n showAppRatings: 'Ver evaluaciones de la herramienta',\n showScreenRatings: 'Ver evaluaciones de esta pantalla',\n emptyList: 'Ninguna evaluación con estos filtros.',\n pagination: 'Páginas de las evaluaciones',\n unknownUser: 'Usuario',\n loadError: 'No se pudieron cargar las evaluaciones.',\n forbidden: 'No administras esta aplicación, o no tienes activa la credencial de Administrador.',\n updatedAt: 'Actualizado el {date} a las {time}',\n details: 'Ver detalles',\n detailsOf: '(evaluaciones de {name})',\n tabScreens: 'Pantallas',\n tabAreas: 'Áreas',\n tabTrends: 'Tendencias',\n viewAll: 'Ver todas las evaluaciones',\n allHeading: 'Todas las evaluaciones',\n justNow: 'Hace un momento',\n yesterdayAt: 'Ayer a las {time}',\n dateAt: '{date} a las {time}',\n sortsShort: { worst: 'Peores', best: 'Mejores', most: 'Más evaluadas' },\n bands: { all: 'Todas las notas', bad: 'Malas (menos de 5)', mid: 'Medias (5 a 6,9)', good: 'Buenas (7 o más)' },\n bandFilter: 'Rango de la nota',\n filterArea: 'Área',\n allAreas: 'Todas las áreas',\n noArea: 'Sin área',\n filterByArea: 'Ver las pantallas de {area}',\n screensCount: { one: '1 pantalla', other: '{count} pantallas' },\n searchScreens: 'Buscar pantalla o ruta…',\n searchScreensLabel: 'Buscar pantalla',\n searchAreas: 'Buscar área…',\n searchAreasLabel: 'Buscar área',\n tableEmpty: 'Ninguna pantalla con estos filtros.',\n areasEmpty: 'Ninguna área con estos filtros.',\n colScreen: 'Pantalla',\n colArea: 'Área',\n colScreens: 'Pantallas',\n colScore: 'Nota',\n colTotal: 'Evaluaciones',\n colComments: 'Comentarios',\n colTrend: 'Tendencia',\n colOpen: 'Abrir',\n tablePagination: 'Páginas de las pantallas',\n areasPagination: 'Páginas de las áreas',\n trendOf: 'Media por semana: de {first} a {last}',\n trendNone: 'Sin notas por semana en el período.',\n trendCaption: 'Media por semana, de 0 a 10',\n trendEmpty: 'Sin evaluaciones en el período para mostrar la tendencia.',\n trendValue: '{series} {value}',\n trendWeek: 'Semana del {week}: {values} ({count})',\n aboutRating: 'Evaluación',\n aboutRatingKeywords: 'evaluar nota estrellas promedio opinión',\n rateAction: 'Evaluar',\n noRatingsYet: 'Todavía sin evaluaciones.',\n loadingAverage: 'Cargando el promedio…',\n averageError: 'No se pudo cargar el promedio.',\n },\n notification: {\n genericError: 'Ocurrió un error al procesar tu solicitud.',\n },\n graphql: {\n noResponse: 'El servicio no respondió.',\n serviceFailure: 'Falla en el servicio.',\n done: 'Operación completada.',\n failed: 'No se pudo completar la operación.',\n },\n access: {\n blockedText:\n 'No formas parte de ningún grupo de esta aplicación. Pide a su administrador que te incluya en un grupo y vuelve a iniciar sesión.',\n blockedAction: 'Salir',\n noRightsText: 'No tienes acceso a ninguna página de esta aplicación. Habla con su administrador para solicitar acceso.',\n },\n session: {\n offline: 'Sin conexión con el servidor de autenticación. Sigues conectado; intentando reconectar…',\n reconnecting: 'Reconectando…',\n reauthorizing: 'Renovando tu sesión…',\n reauthorizationRequired: 'Tu sesión necesita ser confirmada. No se perderá nada de lo que tienes abierto.',\n signInAgain: 'Iniciar sesión de nuevo',\n callbackFailedHeading: 'No se pudo completar el inicio de sesión',\n callbackFailedText: 'La respuesta del inicio de sesión llegó incompleta o caducó. Vuelve a iniciar sesión para continuar.',\n logoutFailed: 'No se pudo cerrar la sesión ahora. Verifica la conexión e inténtalo de nuevo.',\n },\n routing: {\n notPublished: 'Esta dirección está en tu acceso, pero su pantalla todavía no fue publicada.',\n notPublishedCode: 'Esta dirección está en tu acceso, pero su pantalla todavía no fue publicada. Informa el código {code} al equipo de Acropole.',\n },\n home: {\n noAccessTitle: 'Todavía no tienes acceso a ninguna pantalla',\n noAccessText:\n 'El acceso lo concede el administrador de la aplicación o el administrador de un grupo con acceso a ella. Si ya lo concedió, sal y vuelve a entrar.',\n yourScreens: 'Tus pantallas',\n modules: 'Acceso rápido',\n privileged: 'Acceso privilegiado',\n recent: 'Continuar donde lo dejaste',\n recentCaption: 'Las pantallas que abriste por última vez, de la más reciente a la más antigua.',\n screenCount: { one: '1 pantalla', other: '{count} pantallas' },\n favorite: 'Agregar {name} a favoritos',\n unfavorite: 'Quitar {name} de favoritos',\n favorites: 'Favoritos',\n morning: 'Buenos días',\n afternoon: 'Buenas tardes',\n evening: 'Buenas noches',\n greetingName: '{greeting}, {name}',\n intro: 'Accede a tus herramientas y sigue las novedades de tus sistemas.',\n seeAll: 'Ver todo',\n seeLess: 'Ver menos',\n recentActions: 'Más acciones para {name}',\n forgetRecent: 'Quitar del historial',\n explore: 'Explorar sistemas',\n exploreIntro: 'Accede a los principales módulos de la plataforma.',\n news: 'Novedades',\n newsBadge: 'Actualizaciones',\n newsAll: 'Ver todas',\n favoritesEmpty: 'Toca el corazón en la barra de una pantalla para verla aquí.',\n help: 'Ayuda y recursos',\n shortcuts: 'Atajos de teclado',\n essentials: 'Repasar lo esencial',\n settings: 'Configuración',\n systemDocs: 'Documentación del sistema',\n },\n autoService: {\n loading: 'Cargando...',\n cancel: 'Cancelar',\n save: 'Guardar',\n create: 'Crear',\n edit: 'Editar',\n remove: 'Quitar',\n search: 'Consultar',\n active: 'Activo',\n inactive: 'Inactivo',\n confirmChanges: 'Confirmar cambios',\n appsTitle: 'Aplicaciones',\n clientSections: 'Secciones del cliente',\n tabRoutes: 'Rutas',\n tabRouters: 'Enrutadores',\n tabAccess: 'Acceso',\n noClients:\n 'No administras esta app. Necesitas (a) estar en el grupo de administración de su proyecto y (b) haber iniciado sesión con la credencial <strong>Administrador</strong> activa. Cambia de credencial en el menú de tu perfil, si está disponible, o pide acceso a quien administra el proyecto.',\n clientsLoadError: 'No fue posible cargar los clients que administra (HTTP {status}). No es falta de permiso: Argos no respondió. Inténtelo de nuevo en un momento.',\n retryLoad: 'Intentar de nuevo',\n pickClient: 'Selecciona el client que quieres administrar',\n pickGroup: 'Selecciona un grupo',\n noDescription: 'Sin descripción registrada.',\n manageMembers: 'Gestionar miembros',\n membersCaption: 'Miembros del grupo',\n noMembers: 'Ningún miembro en este grupo.',\n colUser: 'Usuario',\n colMemberSince: 'Miembro desde',\n membersHeading: 'Miembros — {group}',\n addUser: 'Agregar usuario',\n userSearch: 'Buscar por nombre, username o email...',\n role: 'Función (opcional)',\n noRole: 'Miembro (sin función)',\n add: 'Agregar',\n suggestions: 'Sugerencias',\n suggestionsHint: 'Personas que ya están en otros grupos de este sistema',\n suggestionGroups: 'En {groups}',\n addSuggestion: 'Agregar a {name} al grupo',\n membersTitle: 'Miembros del grupo',\n memberSearch: 'Buscar miembro...',\n membersOf: 'Miembros del grupo {group}',\n noMembersShort: 'Ningún miembro.',\n noMembersMatch: 'Ningún miembro coincide con esta búsqueda.',\n membersLoadingProgress: 'Cargando miembros… {loaded} de {total}',\n membersPartialResults: 'La lista y la búsqueda todavía pueden crecer.',\n membersLoadIncomplete: 'No se pudieron cargar todos los miembros ({loaded} de {total}).',\n newMember: 'Nuevo',\n addedBy: 'por {user}',\n removal: 'Eliminación',\n removalEmpty: 'Marca miembros en la lista para quitarlos del grupo. La remoción solo vale al guardar.',\n undoRemoval: 'Deshacer eliminación',\n saveChanges: 'Guardar cambios',\n colRole: 'Función',\n colAddedAt: 'Agregado el',\n newAccess: 'Nuevo acceso',\n newAccessHeading: 'Nuevo acceso',\n accessCaption: 'Accesos del client',\n noAccess: 'Ningún acceso concedido todavía.',\n colGroup: 'Grupo',\n manageRoutes: 'Gestionar rutas',\n group: 'Grupo',\n routesOf: 'Rutas de {group}',\n noPrivateRoutes: 'Ninguna ruta privada disponible para la credencial de este grupo.',\n register: 'Registrar',\n secretCreated: 'Aplicación creada. Guarda el secret ahora, no se volverá a mostrar:',\n pickApp: 'Selecciona una aplicación',\n disable: 'Desactivar',\n enable: 'Activar',\n delete: 'Eliminar',\n appSections: 'Secciones de la aplicación',\n tabOperations: 'Operaciones',\n tabAccesses: 'Accesos',\n editApp: 'Editar aplicación',\n newApp: 'Nueva aplicación',\n name: 'Nombre',\n grants: 'Grants (separados por coma)',\n appAccessCaption: 'Accesos de la aplicación',\n noAppAccess: 'Ningún grupo tiene acceso a esta aplicación todavía.',\n colType: 'Tipo',\n manageOperations: 'Gestionar operaciones',\n colOperations: 'Operaciones',\n colGuards: 'Guards',\n colMembers: 'Miembros',\n filterOperations: 'Filtrar operaciones',\n filterRoutes: 'Filtrar rutas',\n noFilterMatch: 'Nada coincide con “{term}”.',\n routesTreeLabel: 'Rutas privadas',\n operationsOf: 'Operaciones de {group}',\n noOperations: 'Ninguna operación registrada para esta aplicación todavía.',\n operationsCaption: 'Operaciones registradas',\n colIdentifier: 'Identificador',\n colMethod: 'Método',\n colLevel: 'Nivel',\n colDescription: 'Descripción',\n colAllowedGroups: 'Grupos permitidos',\n groupCount: { one: '1 grupo', other: '{count} grupos' },\n newRouter: 'Nuevo enrutador',\n routersCaption: 'Enrutadores del client',\n noRouters: 'Ningún enrutador registrado todavía.',\n private: 'Privado',\n public: 'Público',\n editRouter: 'Editar enrutador',\n page: 'Página (obligatorio)',\n hierarchy: 'Jerarquía (opcional)',\n levelHeader: 'Header',\n levelNavigation: 'Navegación',\n levelMenu: 'Menú',\n levelItem: 'Ítem',\n levelSubmenu: 'Submenú',\n privateHint: 'Privado (exige access + guard para ser visible)',\n routerDescription: 'Descripción',\n routerDescriptionHint: 'Qué hace la pantalla, en una frase. Aparece debajo del título, en la barra de la página. En un enrutador heredado de una plantilla, el texto de la plantilla prevalece en la próxima sincronización.',\n colPage: 'Página',\n colBuiltPath: 'Ruta armada',\n colVisibility: 'Visibilidad',\n colAllowedBadges: 'Credenciales permitidas',\n anyBadge: 'Cualquier credencial',\n allowedBadgesHint: 'Vacío = cualquier credencial. Con una o más elegidas, solo los grupos con una de esas credenciales pueden recibir acceso a esta pantalla en la pestaña Acceso.',\n newRoute: 'Nueva ruta',\n routesCaption: 'Rutas del client',\n noRoutes: 'Ninguna ruta registrada todavía.',\n editRoute: 'Editar ruta',\n internalName: 'Nombre interno',\n displayName: 'Nombre visible',\n icon: 'Ícono',\n iconPlaceholder: 'ej.: home',\n path: 'Ruta (path)',\n info: 'Info',\n excludable: 'Eliminable',\n excludableLocked: 'Ruta protegida: solo la administración central de Argos puede permitir eliminarla.',\n templateTag: 'Plantilla',\n templateLocked: 'Viene de la plantilla de la aplicación: solo la administración central de Argos la edita o elimina.',\n pathPlaceholder: 'ej.: dashboard',\n pathHint: 'Un solo tramo de la dirección: letras minúsculas y guion. El \"/\" entre niveles lo arma el enrutador.',\n pathInvalid: 'Usa solo letras minúsculas (a–z) y guion — sin \"/\", espacios, números ni acentos, y sin guion al inicio o al final.',\n optionalId: 'ID (opcional)',\n optionalIdPlaceholder: 'generado automáticamente',\n optionalIdHint: 'Para mantener homologación y producción con el mismo id, pega el id del otro entorno; vacío = generado.',\n optionalIdInvalid: 'Indica un UUID (p. ej. 7c92cf1e-ee8d-49cc-85f8-355a3d6e4b86) o déjalo vacío.',\n idTaken: 'Ya existe un registro con este id. Usa otro o deja el campo vacío.',\n rotateSecret: 'Generar nuevo secreto',\n confirmRotateSecretHeading: '¿Generar un nuevo secreto?',\n confirmRotateSecret: 'El secreto actual deja de funcionar de inmediato; actualice el APP_SECRET del servicio que usa esta aplicación. Los tokens ya emitidos valen hasta que expiren (hasta 1 hora).',\n rotatedSecretHeading: 'Nuevo secreto de {name}',\n rotatedSecretWarning: 'Cópielo ahora: el secreto no se volverá a mostrar.',\n rotatedSecretNote: 'El servidor guarda solo un hash del secreto. Al cerrar esta ventana no hay forma de consultarlo; si se pierde, genere otro.',\n rotatedSecretLabel: 'Secreto de la aplicación {name}',\n copySecret: 'Copiar',\n secretCopied: 'Secreto copiado.',\n rotatedSecretDone: 'Listo',\n rotateSecretError: 'No se pudo generar el nuevo secreto. Inténtelo de nuevo.',\n rotateSecretNotFound: 'Aplicación no encontrada en este client.',\n rotateSecretForbidden: 'Usted no administra este client.',\n confirmDeleteAppHeading: '¿Eliminar aplicación?',\n confirmDeleteApp: 'La aplicación {name} se eliminará y su credencial dejará de funcionar. Esta acción no se puede deshacer.',\n confirmDeleteRouteHeading: '¿Eliminar ruta?',\n confirmDeleteRoute: 'La ruta {name} se eliminará de este cliente. Esta acción no se puede deshacer.',\n confirmDeleteRouterHeading: '¿Eliminar enrutador?',\n confirmDeleteRouter: 'El enrutador {path} se eliminará y la página sale del menú. Esta acción no se puede deshacer.',\n confirmRemoveAccessHeading: '¿Quitar acceso?',\n confirmRemoveAccess: 'El grupo {group} pierde el acceso a las rutas privadas de este cliente.',\n confirmRemoveConsumerHeading: '¿Quitar acceso a la aplicación?',\n confirmRemoveConsumer: 'El grupo {group} deja de consumir esta aplicación y pierde sus permisos de operación.',\n deleteDone: 'Eliminación completada.',\n deleteError: 'No se pudo eliminar. Inténtalo de nuevo.',\n colExcludable: 'Eliminable',\n excludableYes: 'Sí',\n excludableNo: 'No',\n colName: 'Nombre',\n colDisplay: 'Visible',\n colIcon: 'Ícono',\n colPath: 'Path',\n colId: 'ID',\n copyRouteId: 'Copiar el ID de la ruta {name}',\n copyRouterId: 'Copiar el ID del enrutador {name}',\n idCopied: 'ID copiado',\n reorder: 'Reordenar',\n reorderTitle: 'Reordenar menú',\n reorderHint: 'Cambie el orden en que los elementos aparecen en el menú de la app: arrastre por el asa (o, con el teclado, Espacio en el asa y las flechas) o use los botones de subir y bajar. Para ordenar lo que hay dentro de un elemento, entre en él.',\n reorderPath: 'Nivel del menú',\n reorderRoot: 'Inicio del menú',\n reorderListLabel: 'Orden en {name}',\n reorderEmpty: 'Ningún enrutador registrado para ordenar.',\n moveUp: 'Mover {name} hacia arriba',\n moveDown: 'Mover {name} hacia abajo',\n openLevel: 'Ordenar lo que hay dentro de {name}',\n childCount: { one: '1 elemento dentro', other: '{count} elementos dentro' },\n movedTo: '{name}: posición {position} de {total}',\n reorderLoadError: 'No se pudo cargar el menú. Inténtelo de nuevo.',\n reorderSaveError: 'No se pudo guardar el orden. No se perdió nada: inténtelo de nuevo.',\n reorderSave: 'Guardar orden',\n newGroup: 'Nuevo grupo',\n editGroup: 'Editar grupo',\n noGroups: 'Aún no hay grupos registrados.',\n accessLevel: 'Nivel de acceso',\n pickAccessLevel: 'Selecciona un nivel',\n noLevel: 'Sin nivel',\n noGroupsOfLevel: 'Ningún grupo en este nivel.',\n colStatus: 'Estado',\n groupName: 'Nombre',\n groupType: 'Tipo',\n groupTypePlaceholder: 'Selecciona el tipo',\n groupDescription: 'Descripción (opcional)',\n confirmDeleteGroupHeading: '¿Eliminar grupo?',\n confirmDeleteGroup:\n 'El grupo {name} se eliminará junto con sus miembros, los accesos a pantallas y los permisos en aplicaciones. Esta acción no se puede deshacer.',\n groupSaveError: 'No se pudo guardar el grupo. Inténtalo de nuevo.',\n membersSaveError: 'No se pudieron guardar todos los cambios de los miembros. Revisa la lista e inténtalo de nuevo.',\n noApps: 'Ninguna aplicación registrada todavía.',\n tabTokens: 'Tokens',\n tokensCaption: 'Tokens de la aplicación',\n noTokens: 'Ningún token creado para esta aplicación todavía.',\n newToken: 'Nuevo token',\n colTokenPrefix: 'Inicio del token',\n colExpiresAt: 'Vence',\n colLastUsed: 'Último uso',\n tokenExpired: 'Vencido',\n tokenRevoked: 'Revocado',\n neverUsed: 'Nunca',\n revokeToken: 'Revocar',\n confirmRevokeTokenHeading: '¿Revocar token?',\n confirmRevokeToken: 'El token {name} deja de funcionar de inmediato. La revocación no se puede deshacer.',\n tokenRevokedDone: 'Token {name} revocado.',\n tokenRevokeError: 'No se pudo revocar el token. Inténtalo de nuevo.',\n tokensLoadError: 'No se pudieron cargar los tokens de la aplicación.',\n tokenName: 'Nombre',\n tokenDescription: 'Descripción (opcional)',\n tokenExpiresAt: 'Vence el',\n tokenExpiresHint: 'Desde mañana hasta 365 días a partir de hoy.',\n tokenExpiresInvalid: 'Elige una fecha entre mañana y 365 días a partir de hoy.',\n tokenOperations: 'Operaciones concedidas al token',\n tokenOperationsNote: 'Nada viene marcado: el token no tiene login, así que marca las operaciones protected y private que puede llamar. Las public no necesitan token.',\n freeForAll: 'abierta a todos',\n freeForAuthenticated: 'abierta a autenticados',\n freeNoPermission: 'no depende de permiso',\n publicNoToken: 'pública: no necesita token',\n createToken: 'Crear token',\n tokenSaveError: 'No se pudo crear el token. Inténtalo de nuevo.',\n tokenCreatedHeading: 'Token {name} creado',\n tokenCreatedWarning: 'Cópialo ahora: el token no se mostrará de nuevo.',\n tokenCreatedNote: 'Envíalo en el encabezado x-api-token. El servidor guarda solo un hash del token; si se pierde, revócalo y crea otro.',\n tokenValueLabel: 'Token {name}',\n copyToken: 'Copiar',\n tokenCopied: 'Token copiado.',\n hierarchyHint: 'De arriba hacia abajo: Navegación solo con Header, Menú solo con Navegación, Ítem solo con Menú y Submenú solo con Ítem. Borrar un nivel borra los de abajo.',\n routerSaveError: 'No se pudo guardar el enrutador. Inténtalo de nuevo.',\n permissionsSaveError: 'No se pudieron guardar todos los cambios de las operaciones. Vuelve a abrir el panel y revisa.',\n permissionsSummaryGroup: '{marked} de {total} operaciones protegidas liberadas para el grupo.',\n permissionsSummaryToken: '{marked} de {total} operaciones liberadas para el token.',\n permissionsFreeGroup: {\n one: '1 operación no depende de permiso (public o private) y aparece marcada.',\n other: '{count} operaciones no dependen de permiso (public o private) y aparecen marcadas.',\n },\n permissionsFreeToken: {\n one: '1 operación public no necesita token y no se puede liberar.',\n other: '{count} operaciones public no necesitan token y no se pueden liberar.',\n },\n permissionsFolderCount: '{marked} de {total}',\n permissionsTreeLabel: 'Operaciones',\n tokenErrors: {\n invalidExpiresAt: 'Fecha de vencimiento no válida. Elige otra fecha.',\n invalidValidity: 'El vencimiento debe estar entre mañana y 365 días a partir de hoy.',\n invalidOperationIds: 'Alguna operación elegida ya no existe en esta aplicación. Vuelve a abrir el formulario y elige de nuevo.',\n operationNotProtected: 'Solo las operaciones protected se pueden conceder a un grupo; las public y private ya valen para él.',\n operationPublic: 'Una operación pública no necesita token y no se le puede conceder. Desmárcala e inténtalo de nuevo.',\n appNotFound: 'Aplicación no encontrada en este client. Puede haber sido eliminada.',\n tokenNotFound: 'Token no encontrado en esta aplicación. Puede que ya haya sido revocado.',\n },\n routerErrors: {\n hierarchyGap: 'La jerarquía tiene un nivel vacío en el medio: cada nivel necesita el de arriba (Header → Navegación → Menú → Ítem → Submenú). Completa el nivel que falta o borra los de abajo.',\n invalidAllowedTypes: 'Alguna credencial elegida ya no existe. Revisa las credenciales permitidas.',\n },\n groupErrors: {\n invalidType: 'Ese tipo de grupo ya no existe. Elige otro tipo.',\n adminTypeReserved: 'El tipo Administrador es solo del grupo de administración del proyecto.',\n emptyUpdate: 'Nada que guardar: no se cambió ningún campo.',\n groupProjectImmutable: 'El grupo no cambia de proyecto.',\n groupNameTaken: 'Ya existe un grupo con ese nombre en este proyecto.',\n adminGroupImmutable: 'El grupo de administración no cambia de nombre ni de tipo, ni se desactiva.',\n adminGroupProtected: 'El grupo de administración del proyecto no se puede eliminar.',\n adminGroupLastMember: 'El grupo de administración no puede quedarse sin miembros.',\n adminGroupAccessProtected: 'El acceso del grupo de administración a esta app no se puede quitar.',\n groupNotFound: 'Grupo no encontrado en este proyecto. Puede que se haya eliminado.',\n },\n },\n autoServiceAudit: {\n title: 'Auditoría',\n period: 'Período',\n periodLastHour: 'Última hora',\n period24h: 'Últimas 24 horas',\n period7d: 'Últimos 7 días',\n period30d: 'Últimos 30 días',\n periodFromFilters: 'El período viene de las fechas elegidas en los filtros.',\n filters: 'Filtros de la auditoría',\n filterDates: 'Fechas',\n filterApp: 'Aplicación',\n filterUser: 'Usuario',\n filterOperation: 'Operación',\n filterMethod: 'Método',\n filterOutcome: 'Resultado',\n filterEntry: 'Solo acciones del usuario',\n userPlaceholder: 'Nombre del usuario',\n operationPlaceholder: 'Identificador o nombre de la operación',\n methodRead: 'Lectura',\n methodWrite: 'Escritura',\n methodDelete: 'Eliminación',\n methodStream: 'Flujo continuo',\n outcomeSuccess: 'Éxito',\n outcomeFailure: 'Fallo',\n outcomeDenied: 'Denegado',\n kpiTotal: 'Eventos',\n kpiTotalDescription: 'Todo lo registrado en el período.',\n kpiFailures: 'Fallos',\n kpiDenied: 'Denegados',\n kpiShare: '{percent} del total',\n kpis: 'Resumen del período',\n timeline: 'Línea de tiempo',\n timelineSummary: 'Eventos por intervalo, de {from} a {to}.',\n bucketSummary: '{time}: {total} eventos, {failures} fallos, {denied} denegados',\n timelineEmpty: 'Sin eventos para dibujar en el período.',\n topOperations: 'Operaciones más llamadas',\n topUsers: 'Usuarios más activos',\n topApps: 'Por aplicación',\n noTop: 'Nada en el período.',\n failureCount: { one: '1 fallo', other: '{count} fallos' },\n deniedCount: { one: '1 denegado', other: '{count} denegados' },\n filterBy: 'Filtrar por {name}',\n eventsCaption: 'Eventos del período, del más reciente al más antiguo',\n colWhen: 'Cuándo',\n colApp: 'Aplicación',\n colUser: 'Usuario',\n colOperation: 'Operación',\n colMethod: 'Método',\n colOutcome: 'Resultado',\n colStatus: 'HTTP',\n colDuration: 'Duración',\n durationMs: '{ms} ms',\n pageItems: 'eventos',\n pageSize: 'por página',\n pageError: 'No se pudo cargar esta página de eventos. Inténtalo de nuevo.',\n loading: 'Cargando la auditoría…',\n emptyTitle: 'Ningún evento en el período',\n emptyText: 'Amplía el período o quita filtros para ver más.',\n clearFilters: 'Limpiar filtros',\n errorTitle: 'No se pudo cargar la auditoría',\n errorText: 'El servidor no respondió como se esperaba. Inténtalo de nuevo en unos instantes.',\n retry: 'Intentar de nuevo',\n rangeTooLarge: 'El período máximo es de 31 días. Elige fechas más cercanas.',\n forbidden: 'No tienes acceso a la auditoría de una de las aplicaciones elegidas.',\n anonymous: 'Sin usuario',\n detailHeading: 'Detalle del evento',\n detailLoading: 'Cargando el detalle completo…',\n detailError: 'No se pudo cargar el detalle completo; se muestra el resumen.',\n fieldWhen: 'Cuándo',\n fieldApp: 'Aplicación',\n fieldUser: 'Usuario',\n fieldActor: 'Tipo de actor',\n fieldIp: 'IP de origen',\n fieldOperation: 'Operación',\n fieldIdentifier: 'Identificador',\n fieldMethod: 'Método',\n fieldLevel: 'Nivel',\n fieldPermission: 'Permiso',\n fieldOutcome: 'Resultado',\n fieldStatus: 'Estado HTTP',\n fieldDuration: 'Duración',\n fieldRoute: 'Ruta',\n fieldTarget: 'Objetivo',\n fieldOrigin: 'Origen',\n originEntry: 'Acción del usuario',\n originInternal: 'Llamada entre aplicaciones',\n fieldTrace: 'Trace',\n fieldEventId: 'ID del evento',\n fieldMessage: 'Mensaje',\n fieldReceivedAt: 'Recibido en',\n fieldInstance: 'Instancia del servicio',\n fieldSdk: 'SDK',\n fieldDetails: 'Detalles',\n viewTrace: 'Ver cadena (trace)',\n traceHeading: 'Cadena de la acción',\n traceLoading: 'Cargando la cadena…',\n traceError: 'No se pudo cargar la cadena.',\n traceEmpty: 'Ningún evento de esta cadena está en las aplicaciones de tu proyecto.',\n traceHidden: {\n one: '1 evento de esta cadena es de una aplicación fuera de tu proyecto y no aparece aquí.',\n other: '{count} eventos de esta cadena son de aplicaciones fuera de tu proyecto y no aparecen aquí.',\n },\n period6h: 'Últimas 6 horas',\n refresh: 'Actualizar',\n autoRefresh: 'Actualizar cada 30 s',\n updatedAt: 'Actualizado a las {time}',\n updating: 'Actualizando…',\n filterUserId: 'ID del usuario',\n filterLevel: 'Nivel',\n filterPermission: 'Permiso',\n filterActor: 'Tipo de actor',\n filterStatus: 'Estado HTTP',\n filterTrace: 'Trace',\n userIdPlaceholder: 'UUID del usuario',\n statusPlaceholder: 'Ej.: 403',\n tracePlaceholder: '32 caracteres hexadecimales',\n levelPublic: 'Pública',\n levelPrivate: 'Privada',\n levelProtected: 'Protegida',\n levelOptional: 'Opcional',\n permissionAllowed: 'Permitido',\n permissionForbidden: 'Prohibido',\n permissionUnauthorized: 'No autenticado',\n permissionPublic: 'Pública',\n actorUser: 'Usuario',\n actorAppToken: 'Token de aplicación',\n actorApiToken: 'Token de API',\n actorPublic: 'Público',\n actorUnauthenticated: 'No autenticado',\n forbiddenAdmin: 'Tu cuenta no tiene permiso de lectura de la auditoría. Pide a un administrador las operaciones admin:audit:*.',\n invalidFilter: 'Algún filtro tiene un valor no válido. {detail}',\n kpiFilterHint: '{share} · haz clic para filtrar',\n topsRange: '{from}–{to} de {total}',\n topsPrevious: 'Página anterior de {name}',\n topsNext: 'Página siguiente de {name}',\n topsError: 'No se pudo cargar esta lista.',\n filterByTrace: 'Filtrar la tabla por este trace',\n unitLabel: 'Ver por',\n unitActions: 'Acciones',\n unitEvents: 'Eventos',\n kpiTotalActions: 'Acciones',\n kpiTotalActionsDescription: 'Cada acción cuenta una vez, con todas las etapas entre aplicaciones; el resultado es el peor de ellas.',\n timelineSummaryActions: 'Acciones por intervalo, de {from} a {to}.',\n bucketSummaryActions: '{time}: {total} acciones, {failures} con fallo, {denied} denegadas',\n timelineEmptyActions: 'Sin acciones para dibujar en el período.',\n actionsCaption: 'Acciones del período, de la más reciente a la más antigua',\n pageItemsActions: 'acciones',\n pageErrorActions: 'No se pudo cargar esta página de acciones. Inténtalo de nuevo.',\n emptyTitleActions: 'Ninguna acción en el período',\n colSpans: 'Spans',\n spansApps: 'Aplicaciones: {apps}',\n spansHidden: {\n one: 'más 1 span de una aplicación fuera de tu proyecto',\n other: 'más {count} spans de aplicaciones fuera de tu proyecto',\n },\n actionDetailHeading: 'Detalle de la acción',\n orphanNote: 'La entrada de esta acción no está en el período (o no se registró): se muestra desde su primera llamada entre aplicaciones.',\n orphanTag: 'sin entrada',\n spansHeading: 'Spans de la acción',\n spansSummary: '{count} spans en {duration}',\n spanRow: '{app}, {operation}: {outcome}, empieza en +{offset}, dura {duration}',\n },\n loginAttempts: {\n refresh: 'Actualizar',\n user: 'Usuario',\n userPlaceholder: 'Usuario, correo o identificador escrito',\n period: 'Período',\n result: 'Resultado',\n method: 'Método',\n all: 'Todos',\n clear: 'Limpiar',\n advancedFilters: 'Filtros avanzados',\n ip: 'IP o red',\n ipPlaceholder: '10.0.0.5 o 10.0.0.0/8',\n ipHint: 'IP exacta o red en notación CIDR.',\n reason: 'Motivo',\n caption: 'Intentos de inicio de sesión',\n pageItems: 'intentos',\n pageSize: 'Intentos por página',\n colDate: 'Fecha/hora',\n colResult: 'Resultado',\n colMethod: 'Método',\n colUser: 'Usuario',\n colReason: 'Motivo',\n colIp: 'IP',\n colRealm: 'Realm',\n colClient: 'Client',\n colUserAgent: 'Navegador',\n filterByIp: 'Filtrar por esta IP',\n filterByUser: 'Filtrar por este usuario',\n noMatchingUser: 'sin usuario correspondiente',\n methods: { local: 'Contraseña', mfa: 'MFA', github: 'GitHub', google: 'Google', keycloak: 'Keycloak', entraid: 'Entra ID' },\n results: { success: 'Éxito', failure: 'Fallo', cancelled: 'Cancelado' },\n reasons: {\n bad_password: 'Contraseña incorrecta',\n unknown_user: 'Usuario inexistente o inactivo',\n locked: 'Cuenta bloqueada por intentos',\n mfa_failed: 'Código de verificación incorrecto',\n mfa_expired: 'Código de verificación vencido',\n mfa_not_allowed: 'Método de verificación no permitido',\n mfa_invalid_method: 'Método de verificación desconocido',\n recovery_failed: 'Código de recuperación incorrecto o ya usado',\n recovery_refused: 'Código de recuperación rechazado',\n not_linked: 'Cuenta externa no vinculada',\n wrong_realm: 'Usuario de otro realm',\n },\n forbiddenAdmin: 'Tu cuenta no puede consultar los intentos de inicio de sesión. Pide a un administrador la operación admin:attempts:list.',\n forbiddenClient: 'Solo el grupo de administración del proyecto, con la insignia Administrador activa, ve los intentos de inicio de sesión de esta aplicación.',\n loadErrorDetail: 'No se pudieron cargar los intentos: {detail}',\n loadError: 'No se pudieron cargar los intentos de inicio de sesión.',\n },\n accountFeatures: {\n aiAgent: 'Conectar un agente de IA',\n aiAgentDescription: 'Genera el token y la configuración MCP para pegar en Claude Code.',\n aiAgentKeywords: 'ia agente claude mcp asistente llm automatización',\n aiAgentHelp: 'El agente usa un token de aplicación personal (x-app-token) con los permisos del nivel de acceso elegido. Revóquelo en \"Tokens de aplicación\" cuando ya no lo necesite.',\n aiAgentStart: 'Conectar agente',\n aiAgentServers: 'Servidores MCP',\n aiAgentAccess: 'Acceso del agente',\n aiAgentReadOnly: 'Solo lectura',\n aiAgentReadWrite: 'Lectura y escritura',\n aiAgentWriteHint: 'El agente podrá cambiar datos en su nombre. Prefiera solo lectura cuando sea suficiente.',\n aiAgentReadOnlyServer: '{name} (solo lectura)',\n aiAgentTokenName: 'Agente de IA ({date})',\n aiAgentGenerate: 'Generar configuración',\n aiAgentSelectServer: 'Elija al menos un servidor.',\n aiAgentResult: 'Configuración lista',\n aiAgentResultHint: 'Péguelo en .mcp.json, en la raíz del proyecto (Claude Code). El token aparece solo ahora: cópielo antes de terminar. Válido hasta {date}.',\n aiAgentCopy: 'Copiar configuración',\n aiAgentCopied: 'Configuración copiada. No la comparta: contiene su token.',\n aiAgentDone: 'Terminar',\n aiAgentCreateError: 'No fue posible generar el token del agente.',\n aiAgentUnavailable: 'No disponible en esta aplicación: no está conectada a argos-admin.',\n activity: 'Actividad de la cuenta',\n activityDescription: 'Inicios de sesión e intentos fallidos en los últimos 90 días.',\n activityKeywords: 'login acceso historial intento falla ip navegador seguridad',\n activityFilter: 'Mostrar',\n activityAll: 'Todas',\n activityFailures: 'Solo fallas',\n activityDetail: '{date} · IP {ip}',\n activityApp: 'Aplicación: {app}',\n activityEmpty: 'Nada en los últimos 90 días.',\n activityMore: 'Cargar más',\n activityShowing: '{shown} de {total}',\n activityLoadError: 'No fue posible cargar la actividad de la cuenta.',\n unknownIp: 'desconocido',\n unknownApp: 'sin nombre',\n idle: 'Cerrar por inactividad',\n idleDescription: 'Sale solo después de un tiempo sin uso, con un aviso antes.',\n idleKeywords: 'inactividad tiempo salir automático logout seguridad bloqueo',\n idleNever: 'Nunca',\n idleOption: '{minutes} min',\n idleLimitHint: 'Esta aplicación cierra la sesión en un máximo de {minutes} min sin uso.',\n idleWarningHeading: 'La sesión se va a cerrar',\n idleWarningText: { one: 'Sin actividad desde hace un tiempo. La sesión termina en {count} segundo.', other: 'Sin actividad desde hace un tiempo. La sesión termina en {count} segundos.' },\n idleStay: 'Seguir conectado',\n idleLogout: 'Salir ahora',\n startPage: 'Pantalla inicial',\n startPageDescription: 'Dónde se abre la aplicación después del inicio de sesión.',\n startPageKeywords: 'inicio apertura login favorito última pantalla',\n startHome: 'Inicio',\n startLast: 'Última pantalla visitada',\n startFavorite: 'Favorito: {name}',\n startPageHint: 'Marque pantallas como favoritas para abrir en una de ellas.',\n defaultBadge: 'Credencial predeterminada',\n defaultBadgeDescription: 'Nivel de acceso con el que entra en esta aplicación, en cualquier navegador.',\n defaultBadgeKeywords: 'credencial badge nivel acceso perfil predeterminado login',\n defaultBadgeAuto: 'Automático (el de menor nivel)',\n defaultBadgeSaved: 'Credencial predeterminada guardada. Vale desde el próximo inicio de sesión.',\n defaultBadgeError: 'No fue posible guardar la credencial predeterminada.',\n defaultBadgeLoadError: 'No fue posible cargar sus credenciales.',\n notices: 'Notificaciones',\n noticesDescription: 'Los avisos que muestra esta aplicación.',\n noticesKeywords: 'notificación aviso alerta navegador push',\n browserNotices: 'Avisos del navegador',\n browserNoticesDescription: 'Aviso del sistema cuando la pestaña está en segundo plano.',\n browserNoticesDenied: 'El navegador bloqueó las notificaciones de este sitio. Permítalas en la configuración del navegador.',\n browserNoticesUnsupported: 'Este navegador no muestra notificaciones.',\n noticeOpen: 'Abrir',\n sync: 'Preferencias en la cuenta',\n syncDescription: 'Apariencia, región, favoritos y las demás preferencias lo acompañan en cualquier navegador.',\n syncKeywords: 'sincronizar nube cuenta navegador preferencias respaldo',\n syncSynced: 'Sincronizado a las {time}',\n syncSaving: 'Guardando…',\n syncLocal: 'Solo en este navegador: la cuenta no está disponible.',\n syncError: 'No fue posible sincronizar. Inténtelo de nuevo.',\n syncNow: 'Sincronizar ahora',\n },\n suggestions: {\n button: 'Sugerir una mejora',\n buttonHint: 'Sugerir una mejora para esta pantalla',\n modalTitle: 'Sugerir una mejora',\n intro: 'Cuéntenos qué facilitaría su trabajo. Quien administra la aplicación recibe el pedido y responde por aquí.',\n kind: 'Tipo',\n kinds: { melhoria: 'Mejora', nova_funcionalidade: 'Nueva funcionalidad', problema: 'Problema', outro: 'Otro' },\n statuses: {\n em_analise: 'En análisis', planejada: 'Planificada', em_desenvolvimento: 'En desarrollo',\n concluida: 'Concluida', recusada: 'Rechazada',\n },\n legacyStatuses: { nova: 'Nueva' },\n title: 'Título',\n titlePlaceholder: 'Ej.: Filtrar la lista por fecha',\n titleRequired: 'Indique un título.',\n description: 'Descripción',\n descriptionHint: 'Qué intentó hacer, qué esperaba y por qué ayudaría.',\n screen: 'Pantalla',\n screenHint: 'De dónde viene la sugerencia. Ajústela si es de otra pantalla.',\n send: 'Enviar sugerencia',\n cancel: 'Cancelar',\n sent: 'Sugerencia enviada. ¡Gracias!',\n sendError: 'No fue posible enviar la sugerencia. Inténtelo de nuevo.',\n similarHeading: 'Ya lo pidieron en esta pantalla',\n similarHint: 'Si es el mismo pedido, apóyelo en lugar de repetirlo.',\n vote: 'Yo también lo quiero',\n voted: 'Usted lo apoya',\n votes: { one: '{count} apoyo', other: '{count} apoyos' },\n voteError: 'No fue posible registrar el apoyo.',\n yours: 'Suya',\n mine: 'Mis sugerencias',\n mineEmpty: 'Todavía no envió sugerencias en esta aplicación.',\n mineError: 'No fue posible cargar sus sugerencias.',\n loadMore: 'Cargar más',\n statusFilter: 'Estado',\n allStatuses: 'Todos',\n adminReply: 'Respuesta de la administración',\n sentAt: 'Enviada el {date}',\n boardLabel: 'Tablero de sugerencias',\n search: 'Buscar sugerencias',\n kindFilter: 'Tipo',\n allKinds: 'Todos los tipos',\n refresh: 'Actualizar',\n boardFiltered: '{shown} de {total} sugerencias',\n loadError: 'No fue posible cargar las sugerencias.',\n moveError: 'No fue posible mover la sugerencia. El tablero se recargó.',\n removedAuthor: 'Persona eliminada',\n noScreen: 'Sin pantalla',\n noDescription: 'Sin descripción.',\n requestedBy: 'Pedida por',\n requestedAt: 'El',\n status: 'Estado',\n statusSaved: 'Estado actualizado.',\n statusError: 'No fue posible cambiar el estado.',\n history: 'Historial',\n historyEmpty: 'Todavía sin movimientos.',\n eventStatus: '{actor} la movió de {from} a {to}',\n eventComment: '{actor} comentó',\n someone: 'Alguien',\n comment: 'Comentario para quien la pidió',\n commentHint: 'Quien la pidió lo ve en la página \"Sugerencias de la app\".',\n commentSend: 'Comentar',\n commentSent: 'Comentario enviado.',\n commentError: 'No fue posible enviar el comentario.',\n commentRequired: 'Escriba el comentario.',\n viewLabel: 'Vista',\n viewBoard: 'Tablero',\n viewArchive: 'Archivo',\n kpis: 'Indicadores de las sugerencias',\n kpiOpen: 'En curso',\n kpiStatusCount: '{status} {count}',\n kpiDone: 'Concluidas en {days} días',\n kpiDoneToday: '+{count} hoy',\n kpiDoneNoneToday: 'Ninguna concluida hoy',\n kpiOverdueTrend: '+{count} desde ayer',\n kpiOverdueSteady: 'Ninguna nueva desde ayer',\n kpiSoon: 'Por vencer',\n kpiMineHint: 'Abiertas con usted entre los responsables',\n kpiPriority: 'Abiertas por prioridad',\n kpiPriorityNone: 'Ninguna abierta',\n kpiPriorityPart: '{priority} {count}',\n filters: 'Filtros del tablero',\n moreFilters: 'Más filtros',\n moreFiltersActive: 'Más filtros ({count})',\n allBoardStatuses: 'Todos los estados',\n newTaskIn: 'Nueva tarea en {status}',\n newTaskOptions: 'Crear en otra columna',\n columnOldest: 'La más antigua hace {age}',\n columnOverdue: { one: '{count} vencida', other: '{count} vencidas' },\n columnEmpty: 'Ninguna tarea en esta columna.',\n columnEmptyFiltered: 'Ninguna tarea con estos filtros.',\n columnEmptyHints: {\n em_analise: 'Los pedidos nuevos llegan aquí para que el equipo los evalúe.',\n planejada: 'Lo que ya se aceptó y espera su turno.',\n em_desenvolvimento: 'Lo que el equipo está haciendo ahora.',\n concluida: 'Las entregas de los últimos {days} días quedan aquí.',\n },\n duration: { days: '{d} d {h} h', hours: '{h} h {m} min', minutes: '{m} min' },\n createdOn: 'Creada el {date}',\n dueWithin: 'En plazo · hasta {date}',\n dueLateDays: { one: 'Vencida hace {count} día', other: 'Vencida hace {count} días' },\n screenFilter: 'Pantalla',\n allScreens: 'Todas las pantallas',\n authorFilter: 'Quién la pidió',\n allAuthors: 'Todas las personas',\n sort: 'Ordenar',\n sorts: { position: 'Orden del tablero', votes: 'Más apoyadas', recent: 'Más recientes' },\n sortHint: 'Con este orden, arrastrar solo cambia la columna (la tarjeta va al final).',\n clearFilters: 'Limpiar filtros',\n topVoted: 'Más apoyada',\n comments: { one: '{count} comentario', other: '{count} comentarios' },\n statusSince: 'Desde el {date}',\n openScreen: 'Abrir la pantalla',\n statusChange: 'Cambiar el estado',\n statusComment: 'Comentario (opcional)',\n statusCommentHint: 'Va junto con el cambio; la persona lo ve en \"Mis sugerencias\".',\n statusApply: 'Cambiar estado',\n archiveLabel: 'Archivo de sugerencias',\n archiveSearch: 'Buscar en el archivo',\n archiveEmpty: 'Nada en el archivo',\n archiveEmptyHint: 'Las sugerencias rechazadas y las concluidas hace más de {days} días aparecen aquí.',\n archiveCount: { one: '{count} sugerencia en el archivo', other: '{count} sugerencias en el archivo' },\n closedOn: { concluida: 'Concluida el {date}', recusada: 'Rechazada el {date}' },\n pagination: 'Páginas del archivo',\n reopen: 'Reabrir',\n reopened: 'Sugerencia reabierta: volvió a En análisis.',\n reopenError: 'No fue posible reabrir la sugerencia.',\n newTask: 'Nueva tarea',\n addTaskPlaceholder: 'Título de la tarea (Enter crea)',\n taskCreated: 'Tarea creada.',\n createError: 'No fue posible crear la tarea.',\n saveError: 'No fue posible guardar. Inténtelo de nuevo.',\n kpiMine: 'Asignadas a mí',\n kpiOverdue: 'Vencidas',\n assigneeFilter: 'Responsable',\n allAssignees: 'Cualquier responsable',\n assigneeMine: 'Mías',\n assigneeNone: 'Sin responsable',\n labelFilter: 'Etiqueta',\n allLabels: 'Todas las etiquetas',\n priorityFilter: 'Prioridad',\n allPriorities: 'Todas las prioridades',\n dueFilter: 'Plazo',\n dueAny: 'Cualquier plazo',\n dueOverdueFilter: 'Vencidas',\n dueSoonFilter: 'Vencen hoy o mañana',\n priority: 'Prioridad',\n priorities: { urgente: 'Urgente', alta: 'Alta', media: 'Media', baixa: 'Baja' },\n dueOn: 'Hasta el {date}',\n dueToday: 'Vence hoy',\n dueTomorrow: 'Vence mañana',\n dueLate: 'Venció el {date}',\n checklistSpoken: '{done} de {total} ítems hechos',\n moreAssignees: '+{count}',\n cardMenu: 'Acciones de {key}',\n menuStatus: 'Cambiar estado',\n menuAssignMe: 'Asignarme',\n menuCopyLink: 'Copiar enlace',\n menuCopyKey: 'Copiar clave',\n menuLabel: 'Etiquetas',\n menuNoLabels: 'Ninguna etiqueta en la aplicación',\n menuPriority: 'Prioridad',\n menuArchive: 'Archivar',\n menuRestore: 'Restaurar en el tablero',\n menuDelete: 'Eliminar',\n labelColorName: 'Color {n}',\n linkCopied: 'Enlace copiado.',\n keyCopied: 'Clave copiada.',\n copyError: 'No fue posible copiar.',\n deleteHeading: '¿Eliminar {key}?',\n deleteMessage: 'La tarea, la lista de control, los comentarios y las actividades se eliminan definitivamente. No se puede deshacer.',\n deleteConfirm: 'Eliminar',\n deleted: 'Tarea eliminada.',\n archivedToast: 'Tarea archivada: está en el Archivo.',\n restoredToast: 'Tarea de vuelta en el tablero.',\n assignedToMe: 'Asignada a usted.',\n archivedTag: 'Archivada',\n taskLabel: 'Tarea',\n close: 'Cerrar',\n editTitle: 'Editar título',\n editDescription: 'Editar descripción',\n save: 'Guardar',\n checklist: 'Lista de control',\n checklistAdd: 'Agregar ítem',\n checklistPlaceholder: 'Nuevo ítem (Enter agrega)',\n checklistOnCard: 'Mostrar en la tarjeta',\n checklistEmpty: 'Todavía sin ítems.',\n checklistRemove: 'Quitar \"{text}\"',\n checklistUp: 'Subir \"{text}\"',\n checklistDown: 'Bajar \"{text}\"',\n tabComments: 'Comentarios',\n tabActivity: 'Historial',\n commentsEmpty: 'Todavía sin comentarios.',\n activityEmpty: 'Todavía sin actividades.',\n commentInternal: 'Solo para el equipo (interno: quien la pidió no lo ve)',\n internalTag: 'Interno',\n activity: {\n created: '{actor} creó la tarea',\n title: '{actor} cambió el título de \"{from}\" a \"{to}\"',\n description: '{actor} editó la descripción',\n kind: '{actor} cambió el tipo de {from} a {to}',\n priority: '{actor} cambió la prioridad de {from} a {to}',\n start_date: '{actor} fijó el inicio para el {to}',\n start_date_removed: '{actor} quitó la fecha de inicio',\n due_date: '{actor} fijó la conclusión para el {to}',\n due_date_removed: '{actor} quitó la fecha de conclusión',\n cover: '{actor} cambió la portada',\n cover_removed: '{actor} quitó la portada',\n checklist_on_card: '{actor} cambió la lista de control en la tarjeta',\n screen: '{actor} cambió la pantalla a {to}',\n assignee_added: '{actor} la asignó a {to}',\n assignee_removed: '{actor} quitó a {from} de los responsables',\n watcher_added: '{actor} agregó a {to} como involucrado',\n watcher_removed: '{actor} quitó a {from} de los involucrados',\n label_added: '{actor} agregó la etiqueta {to}',\n label_removed: '{actor} quitó la etiqueta {from}',\n checklist_added: '{actor} agregó \"{to}\" a la lista de control',\n checklist_done: '{actor} completó \"{to}\"',\n checklist_undone: '{actor} reabrió \"{to}\"',\n checklist_renamed: '{actor} renombró \"{from}\" a \"{to}\" en la lista de control',\n checklist_removed: '{actor} quitó \"{from}\" de la lista de control',\n archived: '{actor} archivó la tarea',\n restored: '{actor} restauró la tarea en el tablero',\n merged: '{actor} agrupó esta en {to}',\n merged_here: '{actor} agrupó {to} aquí',\n unmerged: '{actor} desagrupó esta de {from}',\n unmerged_here: '{actor} desagrupó {from} de aquí',\n other: '{actor} modificó la tarea',\n },\n assignees: 'Responsables',\n assignMe: 'Asignarme',\n addAssignee: 'Agregar responsable',\n watchers: 'Involucrados',\n addWatcher: 'Agregar involucrado',\n removePerson: 'Quitar a {name}',\n peopleSearch: 'Buscar persona',\n peopleEmpty: 'No se encontró a nadie.',\n nobody: 'Nadie',\n reporter: 'Informante',\n originUser: 'Pedida desde la pantalla',\n originTeam: 'Creada por el equipo',\n startDate: 'Inicio',\n dueDate: 'Conclusión',\n labels: 'Etiquetas',\n addLabel: 'Etiquetas',\n createLabel: 'Crear la etiqueta \"{name}\"',\n labelColor: 'Color de la etiqueta',\n noLabels: 'Sin etiquetas',\n screenOrigin: 'Pantalla de origen',\n votesField: 'Apoyos',\n createdAt: 'Creada el',\n updatedAt: 'Actualizada el',\n lastChange: 'Última modificación {when} por {actor}',\n lastChangeNoActor: 'Última modificación {when}',\n key: 'Clave',\n copyKey: 'Copiar la clave',\n newTaskHeading: 'Nueva tarea',\n createTask: 'Crear tarea',\n draftHint: 'Los responsables, la lista de control y los comentarios quedan disponibles cuando se cree la tarea.',\n assignMeOnCreate: 'Asignarme',\n appSuggestions: 'Sugerencias de la aplicación',\n listView: 'Qué sugerencias mostrar',\n tabAll: 'Todas',\n tabMine: 'Mías',\n appSearch: 'Buscar por título, descripción o SUG-12',\n thisScreen: 'De esta pantalla',\n appSorts: { votes: 'Más apoyadas', recent: 'Recientes' },\n appEmpty: 'Todavía no hay sugerencias',\n appEmptyHint: 'Sea la primera persona en sugerir una mejora.',\n appEmptyFiltered: 'Ninguna sugerencia con estos filtros.',\n appError: 'No fue posible cargar las sugerencias de la aplicación.',\n support: 'Apoyar {count}',\n supported: 'Apoyada {count}',\n ownSupportHint: 'Es su sugerencia: su interés ya cuenta.',\n publicComments: 'Comentarios',\n publicCommentsEmpty: 'Todavía sin comentarios de la administración.',\n commentsError: 'No fue posible cargar los comentarios.',\n moreComments: 'Más comentarios',\n appPagination: 'Páginas de las sugerencias',\n menuMerge: 'Agrupar en…',\n mergeHeading: 'Agrupar {key} en…',\n mergeIntro: 'Elija la sugerencia principal. Quien pidió y quien apoyó esta pasan a ella; esta sale del tablero y queda en el archivo, con los comentarios.',\n mergeSearch: 'Buscar por la clave o el título',\n mergeNone: 'Ninguna sugerencia abierta para agrupar.',\n mergeHasMerged: 'Otras sugerencias están agrupadas en esta. Desagrúpelas antes de agruparla en otra.',\n mergePreview: '{votes} y {reporters} pasan a {key}.',\n mergeCalculating: 'Calculando lo que pasa…',\n mergePreviewError: 'No fue posible calcular el agrupamiento.',\n reportersCount: { one: '{count} solicitante', other: '{count} solicitantes' },\n mergeConfirmHeading: '¿Agrupar {key} en {target}?',\n mergeConfirmMessage: 'Se puede deshacer después, en \"Desagrupar\".',\n mergeConfirm: 'Agrupar',\n mergedToast: '{key} agrupada en {target}.',\n mergeError: 'No fue posible agrupar la sugerencia.',\n mergedTag: 'Agrupada',\n mergedInto: 'Agrupada en {key}',\n mergedIntoHint: 'Los apoyos y quienes la pidieron están en la principal; los comentarios quedan aquí.',\n openMerged: 'Abrir {key}',\n unmerge: 'Desagrupar',\n unmergeLabel: 'Desagrupar {key}',\n unmergedToast: '{key} desagrupada: volvió al tablero.',\n reporters: 'Solicitantes',\n reporterAuthor: 'Autor',\n reporterVia: 'vía {key}',\n mergedHere: 'Agrupadas aquí',\n mergedFrom: '{key} agrupada en {target}',\n mergedFromHint: 'Pedidos iguales se volvieron uno: sígalo por esta.',\n buttonMenu: 'Sugerencias',\n openPage: 'Ver sugerencias de la app',\n screenPick: 'Pantalla',\n screenPickHint: 'La pantalla que debe cambiar. Si todavía no existe, elija \"Nueva pantalla\".',\n screenPickPlaceholder: 'Busque por el nombre de la pantalla',\n newScreenOption: 'Nueva pantalla (todavía no existe)',\n newScreenName: 'Nombre de la nueva pantalla',\n newScreenHint: 'Cómo llamaría a la pantalla y en qué parte del menú quedaría.',\n newScreenRequired: 'Indique el nombre de la nueva pantalla.',\n newScreenTag: 'Nueva pantalla',\n waiting: { solicitante: 'Esperando al solicitante', responsaveis: 'Esperando a los responsables' },\n waitingFilter: 'Esperando',\n waitingAny: 'Cualquier situación',\n waitingClear: 'Nadie (conversación al día)',\n waitingSaved: 'Situación de la conversación actualizada.',\n menuWaiting: 'Esperando',\n groupFilter: 'Grupo',\n allGroups: 'Todos los grupos',\n requestingGroups: 'Grupos solicitantes',\n noGroups: 'Sin grupo (creada por el equipo)',\n unread: { zero: 'ninguna nueva', one: '{count} nueva', other: '{count} nuevas' },\n fromRequester: 'Solicitante',\n cardChecklist: { one: '{count} actividad ({done}/{count})', other: '{count} actividades ({done}/{count})' },\n requestedByName: 'Pedida por {name}',\n tabSummary: 'Resumen',\n chatAuthor: '{name} ({role})',\n chatSendHint: 'Enter envía; Shift+Enter agrega un salto de línea.',\n inbox: {\n label: 'Sugerencias',\n comment: '{name}: {comment}',\n status: '{name} cambió el estado a {status}',\n },\n page: {\n title: 'Sugerencias de la app',\n allTitle: 'Todas las sugerencias',\n statusPart: '{count} {status}',\n description: 'Siga lo que usted pidió, lo que pidió su grupo y las sugerencias en las que está involucrado, y converse con los responsables.',\n reasons: { autor: 'Mías', relator: 'Agrupadas', envolvido: 'Involucrado', responsavel: 'Responsable', grupo: 'De mi grupo' },\n reasonHints: {\n autor: 'Usted pidió esta sugerencia.',\n relator: 'Un pedido suyo fue agrupado en esta sugerencia.',\n envolvido: 'El equipo lo incluyó como involucrado.',\n responsavel: 'Usted es responsable de esta sugerencia.',\n grupo: 'Alguien de su grupo pidió esta sugerencia.',\n },\n reasonFilter: 'Por qué la veo',\n allReasons: 'Todas',\n needsYou: 'Necesitan su respuesta',\n sorts: { activity: 'Actividad reciente', recent: 'Más nuevas', votes: 'Más apoyadas' },\n empty: 'Todavía no hay sugerencias aquí.',\n emptyHint: 'Pida una mejora en \"Sugerir mejora\": aparece aquí con la conversación.',\n emptyFiltered: 'Ninguna sugerencia con esos filtros.',\n error: 'No fue posible cargar las sugerencias.',\n count: { one: '{count} sugerencia', other: '{count} sugerencias' },\n pickOne: 'Elija una sugerencia para ver los detalles y la conversación.',\n notFound: 'Sugerencia no encontrada, o usted no tiene acceso a ella.',\n conversation: 'Conversación',\n conversationEmpty: 'Nadie escribió todavía.',\n conversationError: 'No fue posible cargar la conversación.',\n olderMessages: 'Mensajes anteriores',\n reply: 'Su mensaje',\n replyPlaceholder: 'Responda a los responsables, dé más detalles…',\n replySend: 'Enviar',\n replyError: 'No fue posible enviar el mensaje.',\n readOnly: 'Usted sigue esta sugerencia por su grupo: puede apoyarla, pero la conversación es solo de quienes la pidieron, los involucrados y los responsables.',\n team: 'Equipo',\n you: 'Usted',\n groups: 'Grupos',\n details: 'Detalles',\n listLabel: 'Sugerencias',\n filtersLabel: 'Filtros',\n waitingYou: 'Los responsables esperan su respuesta.',\n waitingTeam: 'Esperando a los responsables.',\n },\n planning: {\n viewSummary: 'Resumen',\n viewTasks: 'Tareas',\n viewPlanning: 'Planificación',\n viewSchedule: 'Cronograma',\n viewRisks: 'Riesgos',\n viewWorkflow: 'Flujo',\n loadError: 'No se pudo cargar la planificación.',\n saveError: 'No se pudo guardar. Inténtalo de nuevo.',\n retry: 'Intentar de nuevo',\n save: 'Guardar',\n cancel: 'Cancelar',\n delete: 'Eliminar',\n edit: 'Editar',\n points: 'Puntos',\n pointsValue: { zero: '0 pts', one: '{count} pt', other: '{count} pts' },\n noEstimate: 'Sin estimación',\n backlog: 'Backlog',\n noSprint: 'Ningún sprint en curso.',\n unassigned: 'Sin responsable',\n dateRange: '{start} a {end}',\n summary: {\n activeSprint: 'Sprint en curso',\n sprintPoints: '{done} de {total} pts terminados',\n sprintCapacity: 'Capacidad: {capacity} pts',\n openTasks: 'Tareas abiertas',\n overdue: 'Vencidas',\n mine: 'Mis tareas',\n mineEmpty: 'Nada abierto asignado a ti.',\n deadlines: 'Plazos de los próximos 7 días',\n deadlinesEmpty: 'Ningún plazo vencido ni en los próximos 7 días.',\n topRisks: 'Riesgos altos',\n topRisksEmpty: 'Ningún riesgo alto abierto.',\n riskScore: 'Probabilidad {likelihood} · impacto {impact}',\n nextMilestone: 'Próximo hito',\n nextMilestoneEmpty: 'Ningún hito por delante.',\n },\n tasks: {\n viewLabel: 'Mostrar como',\n viewList: 'Lista',\n viewTable: 'Tabla',\n listLabel: 'Tareas abiertas',\n gridCaption: 'Tareas abiertas de la app',\n count: { zero: 'Ninguna tarea abierta', one: '{count} tarea abierta', other: '{count} tareas abiertas' },\n open: 'Abrir',\n emptyHeading: 'Ninguna tarea abierta',\n emptyBody: 'Las tareas en análisis, planificadas y en desarrollo aparecen aquí.',\n key: 'Clave',\n title: 'Título',\n status: 'Estado',\n priority: 'Prioridad',\n assignee: 'Responsable',\n sprint: 'Sprint',\n due: 'Plazo',\n },\n sprints: {\n heading: 'Backlog y sprints',\n hint: 'Arrastra una tarea a un sprint o de vuelta al backlog.',\n readOnlyClosed: 'Los sprints cerrados son solo de consulta.',\n new: 'Nuevo sprint',\n start: 'Iniciar',\n close: 'Cerrar',\n state: { planned: 'Planificado', active: 'En curso', closed: 'Cerrado' },\n closeHeading: '¿Cerrar {name}?',\n closeMessage: 'Las tareas no terminadas vuelven al backlog.',\n deleteHeading: '¿Eliminar {name}?',\n deleteMessage: 'Sus tareas vuelven al backlog.',\n newHeading: 'Nuevo sprint',\n editHeading: 'Editar sprint',\n name: 'Nombre',\n nameRequired: 'Indica el nombre del sprint.',\n goal: 'Objetivo',\n start_date: 'Inicio',\n end_date: 'Fin',\n datesRequired: 'Indica el inicio y el fin.',\n datesOrder: 'El fin no puede ser antes del inicio.',\n capacity: 'Capacidad (pts)',\n activeExists: 'Ya hay un sprint en curso: ciérralo antes de iniciar otro.',\n moved: '{key} pasó a {target}.',\n progressHeading: 'Avance de {name}',\n done: 'Terminado',\n committed: 'Comprometido',\n capacityUse: 'Uso de la capacidad',\n burndownCaption: 'Burndown de {name}: puntos restantes por día',\n day: 'Día',\n ideal: 'Ideal',\n remaining: 'Restante',\n closed: 'Sprints cerrados',\n },\n schedule: {\n heading: 'Cronograma',\n label: 'Cronograma de las tareas',\n hint: 'Arrastra una barra para cambiar el inicio y el plazo. Solo aparecen las tareas con fecha.',\n milestones: 'Hitos',\n newMilestone: 'Nuevo hito',\n milestoneTitle: 'Título',\n milestoneDate: 'Fecha',\n milestoneRequired: 'Indica el título y la fecha del hito.',\n removeMilestone: 'Eliminar el hito {title}',\n rescheduled: '{key}: fechas guardadas.',\n conflicts: '{key} empieza antes de que terminen: {list}.',\n workloadHeading: 'Carga del equipo',\n workloadLabel: 'Puntos por persona en las próximas 4 semanas',\n workloadHint: 'Capacidad de referencia: {capacity} pts por persona por semana.',\n week: 'Semana del {date}',\n noPeople: 'Nadie tiene una tarea con fecha y responsable.',\n },\n risks: {\n heading: 'Riesgos',\n label: 'Riesgos de las tareas de la app',\n hint: 'Cada riesgo es de una tarea. Haz clic en una celda de la matriz para filtrar la lista; haz clic en un riesgo para editarlo.',\n new: 'Nuevo riesgo',\n newHeading: 'Nuevo riesgo',\n editHeading: 'Editar riesgo',\n title: 'Riesgo',\n titleRequired: 'Describe el riesgo.',\n owner: 'Dueño',\n status: 'Estado',\n mitigation: 'Mitigación',\n deleteHeading: '¿Eliminar este riesgo?',\n statuses: { identified: 'Identificado', mitigating: 'En mitigación', closed: 'Cerrado' },\n task: 'Tarea',\n taskPlaceholder: 'Elige la tarea amenazada',\n taskRequired: 'Elige la tarea del riesgo.',\n noTask: 'Sin tarea',\n level: 'Riesgo',\n levels: { low: 'Bajo', medium: 'Medio', high: 'Alto', critical: 'Crítico' },\n ofTask: 'Riesgos',\n add: 'Agregar riesgo',\n empty: 'Ningún riesgo en esta tarea.',\n },\n workflow: {\n heading: 'Flujo de las sugerencias',\n hint: 'Los estados que quien pide sigue en \"Mis sugerencias\". El flujo es el mismo para todas las apps.',\n label: 'Flujo de estados de las sugerencias',\n count: { zero: 'Ninguna en el tablero', one: '{count} en el tablero', other: '{count} en el tablero' },\n plan: 'Planificar',\n start: 'Empezar',\n finish: 'Terminar',\n refuse: 'Rechazar',\n reopen: 'Reabrir',\n },\n detail: {\n estimate: 'Puntos',\n sprint: 'Sprint',\n backlogOption: 'Backlog (sin sprint)',\n dependsOn: 'Depende de',\n dependsOnPlaceholder: 'Buscar tarea',\n dependencyCycle: 'Esta dependencia formaría un ciclo entre las tareas.',\n blockedBy: 'Bloqueada por {list}',\n },\n },\n },\n};\n","import { InjectionToken, Provider, computed, inject } from '@angular/core';\nimport { HermesI18nService, liveCatalog } from '@trismegisto/angular';\nimport { CatalogOverride, mergeCatalog } from '@trismegisto/primitives';\nimport { SPINE_MESSAGES_EN } from './spine-messages.en';\nimport { SPINE_MESSAGES_ES } from './spine-messages.es';\nimport { SPINE_MESSAGES_PT_BR, SpineMessages } from './spine-messages';\n\nexport type SpineMessagesOverride = CatalogOverride<SpineMessages>;\n\nexport interface SpineI18nConfig {\n /** Catálogos extras ou substitutos, por idioma (mesmas chaves do `SpineMessages`). */\n readonly catalogs?: Readonly<Record<string, SpineMessages>>;\n /** Textos avulsos sobrescritos por cima do catálogo ativo, em qualquer idioma. */\n readonly override?: SpineMessagesOverride;\n}\n\nexport const SPINE_I18N_CONFIG = new InjectionToken<SpineI18nConfig>('SPINE_I18N_CONFIG', {\n providedIn: 'root',\n factory: () => ({}),\n});\n\nconst BUILT_IN: Readonly<Record<string, SpineMessages>> = {\n 'pt-BR': SPINE_MESSAGES_PT_BR,\n en: SPINE_MESSAGES_EN,\n 'en-US': SPINE_MESSAGES_EN,\n es: SPINE_MESSAGES_ES,\n};\n\n/** Último catálogo vivo criado pelo `SPINE_MESSAGES` (ver `currentSpineMessages`). */\nlet current: SpineMessages | null = null;\n\n/**\n * Textos do spine no idioma ativo para quem não tem injeção (funções puras como o `unwrap` do\n * `@trismegisto/spine/graphql`, chamado em qualquer lugar do app). É o mesmo catálogo vivo do\n * `SPINE_MESSAGES` — segue `setLocale` — assim que o shell o injetou; antes disso, o pt-BR.\n */\nexport function currentSpineMessages(): SpineMessages {\n return current ?? SPINE_MESSAGES_PT_BR;\n}\n\n/**\n * Textos do spine no idioma ativo da lib (`HermesI18nService.locale`): uma troca de idioma com\n * `setLocale` atualiza a lib e o spine juntos, sem recarregar. Leitura igual à do `HERMES_MESSAGES`\n * (`inject(SPINE_MESSAGES).header.settings`), viva também em template.\n *\n * `meta.locale` é o de formatação da lib (`HermesI18nService.formatLocale`) quando a língua é a mesma: a\n * variante regional (`en-GB`) e o relógio/primeiro dia da semana escolhidos em Região valem também nas\n * datas e horas que o spine formata.\n */\nexport const SPINE_MESSAGES = new InjectionToken<SpineMessages>('SPINE_MESSAGES', {\n providedIn: 'root',\n factory: () => {\n const i18n = inject(HermesI18nService);\n const config = inject(SPINE_I18N_CONFIG);\n const catalogs = { ...BUILT_IN, ...config.catalogs };\n const active = computed(() => {\n const picked = i18n.pick(catalogs, SPINE_MESSAGES_PT_BR);\n const base = config.override ? mergeCatalog(config.override, picked) : picked;\n const locale = i18n.formatLocale();\n const sameLanguage = locale.split('-')[0].toLowerCase() === base.meta.locale.split('-')[0].toLowerCase();\n return sameLanguage && locale !== base.meta.locale ? { ...base, meta: { ...base.meta, locale } } : base;\n });\n current = liveCatalog(() => active());\n return current;\n },\n});\n\n/** Sobrescreve textos do spine e/ou acrescenta idiomas. O idioma em si vem de `provideHermesI18n`. */\nexport function provideSpineMessages(config: SpineI18nConfig): Provider {\n return { provide: SPINE_I18N_CONFIG, useValue: config };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}