@gntik-ai/ui 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field-fY45gbLU.js","names":["Button","BaseButton","Field","BaseField","Fieldset","BaseFieldset"],"sources":["../src/utils/density-merge.ts","../src/utils/cn.ts","../src/utils/tv.ts","../src/i18n/format.ts","../src/i18n/messages/en.ts","../src/i18n/messages/es.ts","../src/i18n/messages/index.ts","../src/i18n/I18nProvider.tsx","../src/density/density-context.ts","../src/utils/rtl.ts","../src/components/Spinner/Spinner.tsx","../src/components/Button/button.variants.ts","../src/components/Button/Button.tsx","../src/components/LiveAnnouncer/live-announcer.variants.ts","../src/components/LiveAnnouncer/LiveAnnouncer.tsx","../src/components/Field/field.variants.ts","../src/components/Field/Field.tsx"],"sourcesContent":["/**\n * Teaches tailwind-merge the density utilities from @gntik-ai/tokens (density.css), so\n * `cn('h-control', 'h-10')` and `px-control … px-0` resolve like any other Tailwind conflict.\n * Shared by `cn()` and the `tv()` instance.\n */\nexport const densityMergeConfig = {\n extend: {\n classGroups: {\n h: [{ h: ['control-sm', 'control', 'control-lg', 'item', 'tab', 'chip', 'token', 'row'] }],\n w: [{ w: ['control-sm', 'control', 'control-lg'] }],\n size: [{ size: ['control-sm', 'control', 'control-lg'] }],\n px: [{ px: ['control-sm', 'control', 'control-lg', 'field'] }],\n ps: [{ ps: ['field'] }],\n py: [{ py: ['cell', 'bar'] }],\n gap: [{ gap: ['tight'] }],\n },\n },\n};\n","import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\nimport { densityMergeConfig } from './density-merge';\n\nconst twMerge = extendTailwindMerge(densityMergeConfig);\n\n/** Joins class names and resolves Tailwind conflicts (last one wins), density utilities included. */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { createTV } from 'tailwind-variants';\nimport { densityMergeConfig } from './density-merge';\n\nexport { type VariantProps } from 'tailwind-variants';\n\n/** `tv()` with tailwind-merge aware of the density utilities (h-control, px-control…). */\nexport const tv = createTV({ twMergeConfig: densityMergeConfig });\n","import type { MessageKey, Messages } from './messages/en';\n\n/** Values interpolated into a message: `{name}` placeholders and plural selectors. */\nexport type MessageVars = Record<string, string | number>;\n\n/** Options for locale-aware byte or bit sizes. */\nexport interface FormatBytesOptions {\n /** BCP 47 locale; defaults to English. */\n locale?: string;\n /** Decimal SI (default) or binary IEC multiples. Bits always use 1000. */\n base?: 1000 | 1024;\n /** The input's unit; defaults to bytes. */\n unit?: 'byte' | 'bit';\n /** Intl label width; binary multiples always use IEC symbols. Defaults to short. */\n unitDisplay?: 'short' | 'long' | 'narrow';\n /** Maximum decimals above the base unit; defaults to 1. */\n maximumFractionDigits?: number;\n}\n\n/**\n * Formats a size with localized Intl unit labels, rounding into the next unit when needed.\n * Bytes scale through petabytes, bits through terabits; non-finite values return `—`.\n * A string second argument remains shorthand for the locale.\n * @example formatBytes(1536, 'es') // '1,5 kB'\n * @example formatBytes(26_214_400, { base: 1024 }) // '25 MiB'\n */\nexport function formatBytes(value: number, options: string | FormatBytesOptions = {}): string {\n if (!Number.isFinite(value)) return '—';\n const {\n locale = 'en',\n base = 1000,\n unit = 'byte',\n unitDisplay = 'short',\n maximumFractionDigits = 1,\n } = typeof options === 'string' ? { locale: options } : options;\n const scale = unit === 'bit' ? 1000 : base;\n const prefixes = ['', 'kilo', 'mega', 'giga', 'tera', 'peta'];\n const last = unit === 'bit' ? 4 : 5;\n let magnitude = Math.abs(value);\n let index = 0;\n while (magnitude >= scale && index < last) {\n magnitude /= scale;\n index++;\n }\n // Intl rounding also handles decimal ties that binary toFixed can round down.\n const rounded = new Intl.NumberFormat('en', {\n maximumFractionDigits: index === 0 ? 0 : maximumFractionDigits,\n useGrouping: false,\n }).format(magnitude);\n if (Number(rounded) >= scale && index < last) {\n magnitude /= scale;\n index++;\n }\n const signed = value < 0 ? -magnitude : magnitude;\n const numberOptions = { maximumFractionDigits: index === 0 ? 0 : maximumFractionDigits };\n if ((unit === 'byte' && index === 0 && unitDisplay === 'short') || (scale === 1024 && index > 0)) {\n const symbol = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'][index];\n return `${new Intl.NumberFormat(locale, numberOptions).format(signed)} ${symbol}`;\n }\n return new Intl.NumberFormat(locale, {\n ...numberOptions,\n style: 'unit',\n unit: `${prefixes[index]}${unit}`,\n unitDisplay,\n }).format(signed);\n}\n\n/** Scripts written right to left (language subtag). */\nconst RTL_LANGUAGES = new Set(['ar', 'arc', 'ckb', 'dv', 'fa', 'he', 'iw', 'ks', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\n/** `rtl` for Arabic, Hebrew, Persian, Urdu… (by language subtag or Intl text info), else `ltr`. */\nexport function localeDirection(locale: string): 'ltr' | 'rtl' {\n try {\n const loc = new Intl.Locale(locale) as Intl.Locale & {\n getTextInfo?: () => { direction?: string };\n textInfo?: { direction?: string };\n };\n const info = loc.getTextInfo?.() ?? loc.textInfo;\n if (info?.direction === 'rtl' || info?.direction === 'ltr') return info.direction;\n return RTL_LANGUAGES.has(loc.language) ? 'rtl' : 'ltr';\n } catch {\n return RTL_LANGUAGES.has(locale.split(/[-_]/)[0]?.toLowerCase() ?? '') ? 'rtl' : 'ltr';\n }\n}\n\n/** Index of the brace closing the one at `open` (nested braces allowed). */\nfunction matchBrace(text: string, open: number): number {\n let depth = 0;\n for (let i = open; i < text.length; i++) {\n if (text[i] === '{') depth++;\n else if (text[i] === '}' && --depth === 0) return i;\n }\n return -1;\n}\n\n/** `one {# item} other {# items}` → `{ one: '# item', other: '# items' }`. */\nfunction parseBranches(body: string): Record<string, string> {\n const branches: Record<string, string> = {};\n let i = 0;\n while (i < body.length) {\n const open = body.indexOf('{', i);\n if (open < 0) break;\n const name = body.slice(i, open).trim();\n const close = matchBrace(body, open);\n if (close < 0) break;\n branches[name] = body.slice(open + 1, close);\n i = close + 1;\n }\n return branches;\n}\n\n/** Fills `{name}` placeholders and `{count, plural, one {…} other {…}}` selectors. */\nexport function interpolate(template: string, vars: MessageVars | undefined, locale: string): string {\n if (!vars || !template.includes('{')) return template;\n let out = '';\n let i = 0;\n while (i < template.length) {\n const open = template.indexOf('{', i);\n if (open < 0) {\n out += template.slice(i);\n break;\n }\n out += template.slice(i, open);\n const close = matchBrace(template, open);\n if (close < 0) {\n out += template.slice(open);\n break;\n }\n const inner = template.slice(open + 1, close);\n const plural = /^\\s*(\\w+)\\s*,\\s*plural\\s*,(.*)$/s.exec(inner);\n if (plural) {\n const name = plural[1] ?? '';\n const n = Number(vars[name] ?? 0);\n const branches = parseBranches(plural[2] ?? '');\n const rule = new Intl.PluralRules(locale).select(n);\n const branch = branches[`=${n}`] ?? branches[rule] ?? branches.other ?? '';\n out += interpolate(branch.replaceAll('#', new Intl.NumberFormat(locale).format(n)), vars, locale);\n } else {\n const value = vars[inner.trim()];\n out += value === undefined ? `{${inner}}` : String(value);\n }\n i = close + 1;\n }\n return out;\n}\n\nexport type DateValue = Date | number | string;\nconst toDate = (value: DateValue) => (value instanceof Date ? value : new Date(value));\n\nconst RELATIVE_UNITS: [Intl.RelativeTimeFormatUnit, number][] = [\n ['year', 365 * 24 * 3600],\n ['month', 30 * 24 * 3600],\n ['week', 7 * 24 * 3600],\n ['day', 24 * 3600],\n ['hour', 3600],\n ['minute', 60],\n ['second', 1],\n];\n\n/** The translator and Intl formatters for one locale. */\nexport interface I18nFormatters {\n /** Translates a built-in key, filling placeholders. */\n t: (key: MessageKey, vars?: MessageVars) => string;\n formatNumber: (value: number, options?: Intl.NumberFormatOptions) => string;\n formatBytes: (value: number, options?: FormatBytesOptions) => string;\n formatCurrency: (value: number, currency: string, options?: Intl.NumberFormatOptions) => string;\n formatDate: (value: DateValue, options?: Intl.DateTimeFormatOptions) => string;\n /**\n * Relative time. With a unit, formats `value` in it (\"in 3 days\"); with a date, picks the\n * largest fitting unit against `now` (\"5 minutes ago\").\n */\n formatRelativeTime: {\n (value: number, unit: Intl.RelativeTimeFormatUnit, options?: Intl.RelativeTimeFormatOptions): string;\n (value: Date, now?: Date | number, options?: Intl.RelativeTimeFormatOptions): string;\n };\n formatList: (items: readonly string[], options?: Intl.ListFormatOptions) => string;\n}\n\nexport function createFormatters(locale: string, messages: Messages): I18nFormatters {\n function formatRelativeTime(\n value: number,\n unit: Intl.RelativeTimeFormatUnit,\n options?: Intl.RelativeTimeFormatOptions,\n ): string;\n function formatRelativeTime(value: Date, now?: Date | number, options?: Intl.RelativeTimeFormatOptions): string;\n function formatRelativeTime(\n value: number | Date,\n unitOrNow?: Intl.RelativeTimeFormatUnit | Date | number,\n options: Intl.RelativeTimeFormatOptions = { numeric: 'auto' },\n ): string {\n const rtf = new Intl.RelativeTimeFormat(locale, options);\n if (typeof value === 'number' && typeof unitOrNow === 'string') return rtf.format(value, unitOrNow);\n const now =\n unitOrNow instanceof Date ? unitOrNow.getTime() : typeof unitOrNow === 'number' ? unitOrNow : Date.now();\n const seconds = Math.round((toDate(value).getTime() - now) / 1000);\n const [unit, size] = RELATIVE_UNITS.find(([, s]) => Math.abs(seconds) >= s) ?? ['second', 1];\n return rtf.format(Math.round(seconds / size), unit);\n }\n return {\n t: (key, vars) => interpolate(messages[key] ?? key, vars, locale),\n formatNumber: (value, options) => new Intl.NumberFormat(locale, options).format(value),\n formatBytes: (value, options) => formatBytes(value, { locale, ...options }),\n formatCurrency: (value, currency, options) =>\n new Intl.NumberFormat(locale, { style: 'currency', currency, ...options }).format(value),\n formatDate: (value, options = { dateStyle: 'medium' }) =>\n new Intl.DateTimeFormat(locale, options).format(toDate(value)),\n formatRelativeTime,\n formatList: (items, options = { style: 'long', type: 'conjunction' }) =>\n new Intl.ListFormat(locale, options).format(items),\n };\n}\n","/**\n * Built-in English catalog: every string the kit renders on its own (labels, accessible names,\n * announcements). It is the source of the message keys; other catalogs must cover every key.\n *\n * Placeholders: `{name}`. Plurals (Intl.PluralRules): `{count, plural, one {# item} other {# items}}`.\n * Use `{count}` instead of `#` inside plural branches to keep numbers ungrouped for English parity.\n * Month and weekday names, numbers and dates come from Intl, not from this catalog.\n */\nexport const en = {\n 'themeScope.title': 'Light preview',\n 'themeScope.description': 'This card and its popup use the light theme.',\n 'themeScope.choice': 'Preview choice',\n 'themeScope.personal': 'Personal',\n 'themeScope.nested': 'A dark region inside a light region.',\n 'themeScope.release': 'Release forced theme',\n 'themeScope.force': 'Force light theme',\n\n 'resourceDetail.overview': 'Overview',\n 'resourceDetail.activity': 'Activity',\n 'resourceDetail.settings': 'Settings',\n 'resourceDetail.sections': 'Resource sections',\n\n 'error.title': 'We couldn’t load deployments',\n 'error.message': 'The service didn’t respond in time. Your data is safe; try again in a moment.',\n 'error.support': 'Contact support',\n\n 'emptyState.noAccess.title': 'You don’t have access to {resource}',\n 'emptyState.noAccess.description': 'Ask {owner} to grant you a role that includes {resource} permissions.',\n 'emptyState.noAccess.request': 'Request access',\n 'emptyState.noAccess.requested': 'Access requested',\n 'emptyState.noAccess.sent': 'Access request sent',\n\n 'emptyState.noResults.queryTitleBefore': 'No {entity} match “',\n 'emptyState.noResults.queryTitleAfter': '”',\n 'emptyState.noResults.title': 'No {entity} found',\n 'emptyState.noResults.description':\n 'Check the spelling or try a broader search{count, plural, =0 {} one { with {count} filter applied} other { with {count} filters applied}}.',\n 'emptyState.noResults.clearFilters': 'Clear filters',\n 'emptyState.noResults.clearSearch': 'Clear search',\n\n 'emptyState.firstRun.title': 'Create your first project',\n 'emptyState.firstRun.description':\n 'Projects group your services, environments and deployments. Start one from a repository in a couple of minutes.',\n 'emptyState.firstRun.action': 'New project',\n 'emptyState.firstRun.guide': 'Read the guide',\n\n 'callout.title': 'You have used 92% of your build minutes',\n 'callout.description':\n 'Builds will queue once the monthly limit is reached. Upgrade the plan or reduce concurrent builds.',\n 'callout.upgrade': 'Upgrade plan',\n 'callout.viewUsage': 'View usage',\n\n 'descriptionList.title': 'Configuration',\n 'descriptionList.description': 'Settings of this deployment.',\n 'descriptionList.edit': 'Edit',\n 'descriptionList.copy': 'Copy {label}',\n 'descriptionList.copied': '{label} copied',\n\n 'pageHeader.title': 'Deployments',\n 'pageHeader.description': 'Every build and release of this project across its environments.',\n 'pageHeader.moreActions': 'More actions',\n\n 'logViewer.title': 'Logs',\n 'logViewer.level.debug': 'DEBUG',\n 'logViewer.level.info': 'INFO',\n 'logViewer.level.warn': 'WARN',\n 'logViewer.level.error': 'ERROR',\n 'logViewer.levelFilterOption.debug': 'debug',\n 'logViewer.levelFilterOption.info': 'info',\n 'logViewer.levelFilterOption.warn': 'warn',\n 'logViewer.levelFilterOption.error': 'error',\n 'logViewer.levelFilter': 'Log levels',\n 'logViewer.searchLabel': 'Search logs',\n 'logViewer.searchPlaceholder': 'Search…',\n 'logViewer.follow': 'Follow',\n 'logViewer.count': '{visible} of {total}',\n 'logViewer.empty': 'No lines match the current filters.',\n 'logViewer.inspect': 'Inspect event {timestamp}',\n 'logViewer.copy': 'Copy line {timestamp}',\n\n 'pageHeader.sections': 'Page sections',\n 'thumbnail.uploading': 'Uploading {label}',\n 'thumbnail.error': 'Upload failed',\n 'overflowList.more': '+{count} more',\n 'overflowList.title': '{count} more',\n 'bottomSheet.handle': 'Resize sheet',\n 'bottomSheet.handleHint': 'Arrow Up expands, Arrow Down collapses.',\n 'bottomSheet.expanded': 'Sheet expanded.',\n 'bottomSheet.position': 'Sheet at height {count} of {total}.',\n 'megaMenu.label': 'Main',\n 'virtualList.empty': 'No items.',\n 'jsonViewer.copyPath': 'Copy path',\n 'jsonViewer.copyValue': 'Copy value',\n 'jsonViewer.selectHint': 'Select a node to copy its path or value',\n 'jsonViewer.truncated': 'Truncated',\n 'jsonViewer.copyFullHint': 'Copy value copies the full, untruncated value',\n 'jsonViewer.keys': '{count, plural, one {{count} key} other {{count} keys}}',\n 'jsonViewer.items': '{count, plural, one {{count} item} other {{count} items}}',\n 'jsonViewer.root': '(root)',\n 'carousel.previous': 'Previous slide',\n 'carousel.next': 'Next slide',\n 'carousel.play': 'Start automatic slide show',\n 'carousel.pause': 'Stop automatic slide show',\n 'carousel.slide': '{count} of {total}',\n 'carousel.goTo': 'Go to slide {count}',\n 'carousel.pickers': 'Choose slide',\n 'lightbox.title': 'Media viewer',\n 'lightbox.close': 'Close viewer',\n 'lightbox.zoomIn': 'Zoom in',\n 'lightbox.zoomOut': 'Zoom out',\n 'lightbox.thumbnails': 'Thumbnails',\n 'lightbox.counter': '{count} / {total}',\n 'lightbox.status': '{count} of {total}: {label}',\n 'lightbox.thumbnail': 'Show {count}: {label}',\n 'tour.skip': 'Skip tour',\n 'tour.close': 'End tour',\n 'tour.counter': 'Step {count} of {total}',\n 'listInput.key': 'Key',\n 'listInput.value': 'Value',\n 'listInput.add': 'Add row',\n 'listInput.remove': 'Remove row {count}',\n 'listInput.moveUp': 'Move row {count} up',\n 'listInput.moveDown': 'Move row {count} down',\n 'listInput.reveal': 'Show value {count}',\n 'listInput.duplicate': 'Duplicate key',\n 'listInput.added': '{count, plural, one {Added a row.} other {Added {count} rows.}}',\n 'listInput.removed': 'Removed row {count}.',\n 'listInput.moved': 'Moved to position {count}.',\n 'listInput.limit': 'Limit of {count} rows reached.',\n 'listInput.pasteHint': 'Paste KEY=value lines to add several rows.',\n 'timer.paused': 'Paused',\n 'timer.stopped': 'Stopped',\n 'timer.unitHours': 'h',\n 'timer.unitMinutes': 'm',\n 'timer.unitSeconds': 's',\n 'treeList.error': 'Could not load items.',\n 'transferList.available': 'Available',\n 'transferList.selected': 'Selected',\n 'transferList.searchAvailable': 'Search available',\n 'transferList.searchSelected': 'Search selected',\n 'transferList.searchPlaceholder': 'Filter…',\n 'transferList.add': 'Add checked',\n 'transferList.addAll': 'Add all',\n 'transferList.remove': 'Remove checked',\n 'transferList.removeAll': 'Remove all',\n 'transferList.moveUp': 'Move checked up',\n 'transferList.moveDown': 'Move checked down',\n 'transferList.actions': 'Transfer actions',\n 'transferList.emptyAvailable': 'Everything is selected.',\n 'transferList.emptySelected': 'Nothing selected yet.',\n 'transferList.reorderHint': 'Alt+↑/↓ reorders',\n 'transferList.added': 'Added {count, plural, one {{count} item} other {{count} items}}.',\n 'transferList.removed': 'Removed {count, plural, one {{count} item} other {{count} items}}.',\n 'transferList.moved': 'Order changed.',\n 'matchText.search': 'Search names without accents',\n 'matchText.results': 'Matching names',\n 'virtualOptions.nodes': 'Nodes (10,000 options)',\n 'virtualOptions.remoteNodes': 'Remote nodes (5,000 options)',\n 'virtualOptions.multiNodes': 'Nodes (5,000 options)',\n 'virtualOptions.node': 'node-{index}',\n 'virtualOptions.description': 'Additional node details',\n 'virtualOptions.note': 'Only visible rows are mounted. Search and keyboard navigation still reach every option.',\n 'forms.invite.title': 'Invite a member',\n 'forms.bindings.width.xs': 'Extra small',\n 'forms.bindings.width.sm': 'Small',\n 'forms.bindings.width.md': 'Medium',\n 'forms.bindings.width.lg': 'Large',\n 'forms.bindings.width.xl': 'Extra large',\n 'forms.bindings.helpers': 'Manual bindings',\n 'forms.bindings.helpersSaved': 'Saved {count} seats. Notifications: {enabled}.',\n 'forms.bindings.title': 'Control bindings',\n 'forms.bindings.disabled': 'Disable fields',\n 'forms.bindings.readOnly': 'Read-only fields',\n 'forms.bindings.width': 'Field width',\n 'forms.bindings.fullWidth': 'Full width',\n 'forms.bindings.name': 'Name',\n 'forms.bindings.note': 'Note',\n 'forms.bindings.alerts': 'Notifications',\n 'forms.bindings.digest': 'Weekly digest',\n 'forms.bindings.role': 'Access level',\n 'forms.bindings.viewer': 'Viewer',\n 'forms.bindings.editor': 'Editor',\n 'forms.bindings.tags': 'Topics',\n 'forms.bindings.updates': 'Updates',\n 'forms.bindings.events': 'Events',\n 'forms.bindings.date': 'Start date',\n 'forms.bindings.range': 'Date range',\n 'forms.bindings.time': 'Start time',\n 'forms.bindings.count': 'Seats',\n 'forms.bindings.department': 'Department',\n 'forms.bindings.engineering': 'Engineering',\n 'forms.bindings.design': 'Design',\n 'forms.bindings.team': 'Team',\n 'forms.bindings.platform': 'Platform',\n 'forms.bindings.research': 'Research',\n 'forms.bindings.dependent': 'The team options reload when the department changes.',\n 'forms.bindings.saved': 'Preferences saved.',\n // Generic actions and states\n 'common.yes': 'Yes',\n 'common.no': 'No',\n 'common.close': 'Close',\n 'common.dismiss': 'Dismiss',\n 'common.copy': 'Copy',\n 'common.copied': 'Copied',\n 'common.copiedToClipboard': 'Copied to clipboard',\n 'common.copyFailed': 'Copy failed',\n 'common.clear': 'Clear',\n 'common.clearAll': 'Clear all',\n 'common.clearSelection': 'Clear selection',\n 'common.search': 'Search',\n 'common.searchPlaceholder': 'Search…',\n 'common.loading': 'Loading…',\n 'common.noResults': 'No results',\n 'common.noMatches': 'No matches.',\n 'common.selectPlaceholder': 'Select…',\n 'common.selectAll': 'Select all',\n 'common.deselectAll': 'Deselect all',\n 'common.showOptions': 'Show options',\n 'common.remove': 'Remove',\n 'common.removeItem': 'Remove {label}',\n 'common.removed': 'Removed {label}.',\n 'common.back': 'Back',\n 'common.next': 'Next',\n 'common.previous': 'Previous',\n 'common.finish': 'Finish',\n 'common.exit': 'Exit',\n 'common.cancel': 'Cancel',\n 'common.save': 'Save',\n 'common.send': 'Send',\n 'common.stop': 'Stop',\n 'common.retry': 'Retry',\n 'common.edit': 'Edit',\n 'common.delete': 'Delete',\n 'common.filter': 'Filter',\n 'common.sort': 'Sort',\n 'common.viewAll': 'View all',\n 'common.moreActions': 'More actions',\n 'common.openMenu': 'Open menu',\n 'common.more': '{count} more',\n 'common.moreInfo': 'More information about {label}',\n 'common.fieldInvalid': 'Field invalid',\n 'common.invalid': 'invalid: {error}',\n 'common.resize': 'Resize',\n 'common.progress': 'Progress',\n 'common.main': 'Main',\n 'common.settings': 'Settings',\n 'common.notifications': 'Notifications',\n 'common.unread': 'Unread:',\n 'common.results': '{count, plural, one {# result} other {# results}}',\n 'common.trend': 'Trend',\n // Skip links and landmarks\n 'skip.main': 'Skip to main content',\n 'skip.content': 'Skip to content',\n 'skip.canvas': 'Skip to canvas',\n 'skip.document': 'Skip to document',\n 'skip.signIn': 'Skip to sign-in form',\n 'skip.step': 'Skip to step',\n 'nav.navigation': 'Navigation',\n 'nav.openNavigation': 'Open navigation',\n 'nav.closeNavigation': 'Close navigation',\n 'nav.sidebar': 'Sidebar',\n 'nav.expandSidebar': 'Expand sidebar',\n 'nav.collapseSidebar': 'Collapse sidebar',\n 'nav.onThisPage': 'On this page',\n 'nav.pageActions': 'Page actions',\n // Breadcrumbs and pagination\n 'breadcrumbs.label': 'Breadcrumb',\n 'breadcrumbs.expand': '{count, plural, one {Show # more level} other {Show # more levels}}',\n 'pagination.label': 'Pagination',\n 'pagination.previous': 'Previous page',\n 'pagination.next': 'Next page',\n 'pagination.page': 'Page {page}',\n 'pagination.of': 'of',\n // Dates\n 'calendar.chooseMonth': '{label}, choose a month',\n 'calendar.chooseYear': '{label}, choose a year',\n 'calendar.previousYear': 'Previous year',\n 'calendar.nextYear': 'Next year',\n 'calendar.previousYears': 'Previous {count} years',\n 'calendar.nextYears': 'Next {count} years',\n 'calendar.month': 'Month',\n 'calendar.year': 'Year',\n 'calendar.label': 'Calendar',\n 'calendar.localeDefaults': 'Locale defaults',\n 'calendar.previousMonth': 'Previous month',\n 'calendar.nextMonth': 'Next month',\n 'calendar.today': 'Today',\n 'periodPicker.previousYear': 'Previous year',\n 'periodPicker.nextYear': 'Next year',\n 'periodPicker.quarter': 'Q{quarter} {year}',\n 'periodPicker.previousYears': 'Previous 12 years',\n 'periodPicker.nextYears': 'Next 12 years',\n 'periodPicker.yearPage': '{start}–{end}',\n 'periodPicker.yearTitle': '{year}',\n 'periodPicker.chooseYear': 'Choose year',\n 'periodPicker.week': 'Week {week}, {year}',\n 'periodPicker.chooseMonth': 'Choose month',\n 'periodPicker.range': '{start} – {end}',\n 'periodPicker.presets': 'Period presets',\n 'periodPicker.thisWeek': 'This week',\n 'periodPicker.lastWeek': 'Last week',\n 'periodPicker.thisMonth': 'This month',\n 'periodPicker.lastMonth': 'Last month',\n 'periodPicker.thisQuarter': 'This quarter',\n 'periodPicker.lastQuarter': 'Last quarter',\n 'periodPicker.thisYear': 'This year',\n 'periodPicker.lastYear': 'Last year',\n 'periodPicker.billingMonth': 'Billing month',\n 'periodPicker.reportingQuarters': 'Reporting quarters',\n 'periodPicker.reportingWeek': 'Reporting week',\n 'periodPicker.reportingYear': 'Reporting year',\n 'periodPicker.yearCalendar': 'Inline year selection',\n 'periodPicker.wholePeriodDescription': 'The value represents a whole period, starting at local midnight.',\n 'periodPicker.rangeDescription': 'Select two quarters to include every whole quarter between them.',\n 'periodPicker.isoDescription': 'ISO weeks always run Monday to Sunday and use the ISO week-year.',\n 'periodPicker.placeholder': 'Pick a period',\n 'periodPicker.choose': 'Choose period',\n 'datePicker.placeholder': 'Pick a date',\n 'datePicker.rangePlaceholder': 'Pick a date range',\n 'datePicker.choose': 'Choose date',\n 'datePicker.chooseRange': 'Choose date range',\n 'datePicker.presets': 'Presets',\n // Inputs\n 'fieldArray.item': 'Item {n}',\n 'fieldArray.examples.parameters': 'Tool parameters',\n 'fieldArray.examples.description': 'Configure the tools to run in order.',\n 'fieldArray.examples.tool': 'Tool',\n 'fieldArray.examples.timeout': 'Timeout (ms)',\n 'fieldArray.examples.routing': 'Routing rules',\n 'fieldArray.examples.destination': 'Destination',\n 'fieldArray.examples.weight': 'Weight',\n 'fieldArray.examples.steps': 'Steps',\n 'fieldArray.examples.headers': 'Headers',\n 'fieldArray.examples.key': 'Key',\n 'fieldArray.examples.value': 'Value',\n 'fieldArray.duplicate': 'Duplicate {item}',\n 'fieldArray.duplicated': 'Duplicated {item}.',\n 'fieldArray.moveUp': 'Move up {item}',\n 'fieldArray.moveDown': 'Move down {item}',\n 'fieldArray.moved': 'Moved to position {n} of {total}.',\n 'fieldArray.remove': 'Remove {item}',\n 'fieldArray.removed': 'Removed {item}.',\n 'fieldArray.empty': 'No items yet.',\n 'fieldArray.add': 'Add item',\n 'fieldArray.added': 'Added {item}.',\n 'fieldArray.limit': 'Limit of {max} items reached.',\n 'numberInput.decrease': 'Decrease',\n 'numberInput.increase': 'Increase',\n 'otp.character': 'Character {index} of {total}',\n 'password.show': 'Show password',\n 'password.hide': 'Hide password',\n 'password.strength': 'Strength:',\n 'password.tooWeak': 'Too weak',\n 'password.weak': 'Weak',\n 'password.fair': 'Fair',\n 'password.good': 'Good',\n 'password.strong': 'Strong',\n 'multiSelect.moreSelected': 'more selected',\n 'tokenInput.entries': 'Entries',\n 'link.external': '(opens in a new tab)',\n // Overlays and menus\n 'toast.region': 'Notifications',\n 'toast.dismiss': 'Dismiss notification',\n 'theme.label': 'Theme',\n 'theme.light': 'Light',\n 'theme.dark': 'Dark',\n 'theme.highContrast': 'High contrast',\n 'theme.system': 'System',\n 'userMenu.label': 'Account menu for {name}',\n 'userMenu.signOut': 'Sign out',\n 'notifications.markAllRead': 'Mark all as read',\n 'notifications.empty': 'New notifications will show up here.',\n 'workspace.switch': 'Switch workspace',\n 'workspace.create': 'Create workspace',\n 'workspace.search': 'Find a workspace…',\n 'workspace.empty': 'No workspaces match.',\n 'commandPalette.label': 'Command palette',\n 'commandPalette.placeholder': 'Type a command or search…',\n 'commandPalette.recent': 'Recent',\n 'commandPalette.trigger': 'Search or run a command',\n 'commandPalette.navigate': 'navigate',\n 'commandPalette.run': 'run',\n 'commandPalette.close': 'close',\n 'theme.cycle': 'Theme: {current}. Switch to {next}',\n 'notifications.trigger': '{title}, {count} unread',\n 'notifications.new': '{count} new',\n 'notifications.emptyTitle': \"You're all caught up\",\n 'tokenInput.added': 'Added {items}.',\n 'tokenInput.limit': 'Limit of {max} reached.',\n 'avatar.more': 'more',\n // Data display\n 'statusTimeline.label': 'Status history',\n 'statusTimeline.empty': 'No status history',\n 'statusTimeline.showFewer': 'Show fewer',\n 'statusTimeline.showEarlier': 'Show {count} earlier {count, plural, one {event} other {events}}',\n 'statusTimeline.actor': 'by',\n 'stepper.step': 'Step {step} of {total}',\n 'stepper.complete': 'completed',\n 'stepper.current': 'current step',\n 'stepper.upcoming': 'not started',\n 'stepper.error': 'error',\n 'sparkline.noData': '{label}: no data',\n 'sparkline.single': '{label}: {value}',\n 'sparkline.summary':\n '{label}: {direction}{change} from {first} to {last} over {count} points (low {min}, high {max})',\n 'sparkline.up': 'trending up',\n 'sparkline.down': 'trending down',\n 'sparkline.flat': 'flat',\n 'table.scrollable': 'Scrollable table',\n 'codeBlock.code': 'Code',\n 'codeBlock.languageCode': '{language} code',\n 'codeBlock.wrap': 'Wrap lines',\n 'kbd.command': 'Command',\n 'kbd.option': 'Option',\n 'kbd.shift': 'Shift',\n 'kbd.control': 'Control',\n 'kbd.enter': 'Enter',\n 'kbd.backspace': 'Backspace',\n 'kbd.tab': 'Tab',\n 'kbd.escape': 'Escape',\n 'kbd.up': 'Up arrow',\n 'kbd.down': 'Down arrow',\n 'kbd.left': 'Left arrow',\n 'kbd.right': 'Right arrow',\n 'kbd.upDown': 'Up and down arrows',\n // Layouts\n 'settings.section': 'Settings section',\n 'wizard.exitTitle': 'Leave this setup?',\n 'wizard.exitDescription': 'Your progress on this step will be lost.',\n 'wizard.leave': 'Leave',\n 'wizard.progressSummary': '{label} summary',\n 'wizard.stepAnnouncement': 'Step {position} of {total}: {label}',\n 'wizard.finishing': 'Finishing…',\n 'wizard.title': 'Create resource',\n 'wizard.details': 'Details',\n 'wizard.review': 'Review',\n 'wizard.stay': 'Stay',\n 'canvas.palette': 'Palette',\n 'canvas.inspector': 'Inspector',\n 'canvas.console': 'Console',\n 'canvas.main': 'Canvas',\n 'canvas.smallScreen': 'Open on a larger screen to edit. The canvas is read-only here.',\n 'print.pageBreak': 'Page break',\n 'split.list': 'List',\n 'split.details': 'Details',\n 'inspector.pin': 'Pin panel',\n 'inspector.close': 'Close panel',\n 'inspector.toggle': 'Toggle panel',\n // Blocks: tables, filters, page chrome, scheduling, feedback, forms\n 'calendar.tomorrow': 'Tomorrow',\n 'calendar.previousWeek': 'Previous week',\n 'calendar.nextWeek': 'Next week',\n 'calendar.now': 'now',\n 'calendar.unavailable': '(unavailable)',\n 'calendar.availableTimes': 'Available times',\n 'calendar.agenda': 'Agenda',\n 'calendar.emptyTitle': 'Nothing scheduled',\n 'calendar.emptyDescription': 'There is no scheduled work in this period.',\n 'table.loadMore': 'Load more',\n 'table.loadingMore': 'Loading…',\n 'table.loadMoreGroup': 'Load more items',\n 'table.moreAvailable': 'More items available.',\n 'table.loadedSummary': '{count, plural, one {# item loaded} other {# items loaded}}',\n 'table.loadedAnnouncement': '{count, plural, one {# item added.} other {# items added.}}',\n 'table.rows': 'Rows',\n 'table.collectionNoun': '{count, plural, one {item} other {items}}',\n 'table.visibleCount': '{noun}:',\n 'table.truncatedNote':\n '{count, plural, one {Only the first {formattedCount} {noun} is shown; more exist.} other {Only the first {formattedCount} {noun} are shown; more exist.}}',\n 'table.rowsPerPage': 'Rows per page',\n 'table.pagination': '{noun} pagination',\n 'table.selectAllPage': 'Select all rows on this page',\n 'table.pageSelected': 'All {count} rows on this page are selected.',\n 'table.selectAllMatching': 'Select all {count} rows',\n 'table.allMatchingSelected': 'All {count} rows are selected.',\n 'table.selectRow': 'Select {label}',\n 'table.selection': 'Selection',\n 'table.actions': 'Actions',\n 'table.rowActions': 'Actions for {label}',\n 'table.emptyDescription': 'Nothing matches the current filters.',\n 'table.columns': 'Columns',\n 'table.visibleColumns': 'Visible columns',\n 'table.density': 'Row density',\n 'table.comfortable': 'Comfortable rows',\n 'table.compact': 'Compact rows',\n 'table.editRow': 'Edit {label}',\n 'filters.label': 'Filters',\n 'filters.savedView': 'Saved view',\n 'filters.savedViews': 'Saved views',\n 'filters.add': 'Add filter',\n 'filters.active': 'Active filters',\n 'filters.remove': 'Remove filter {field}: {value}',\n 'loading.table': 'Loading table',\n 'loading.list': 'Loading list',\n 'loading.page': 'Loading page',\n 'bulk.label': 'Bulk actions',\n 'bulk.of': 'of {total}',\n 'bulk.selected': '{count, plural, other {selected}}',\n 'bulk.item': 'item',\n 'bulk.items': 'items',\n 'actionBar.unsaved': 'You have unsaved changes',\n 'actionBar.saved': 'All changes saved',\n 'actionBar.save': 'Save changes',\n 'actionBar.discard': 'Discard',\n 'actionBar.saving': 'Saving…',\n 'toolbar.label': 'Page toolbar',\n 'toolbar.view': 'View',\n 'globalSearch.label': 'Global search',\n 'globalSearch.placeholder': 'Search pages, records and actions…',\n 'globalSearch.pages': 'Pages',\n 'globalSearch.records': 'Records',\n 'globalSearch.actions': 'Actions',\n 'error.retry': 'Try again',\n 'error.retrying': 'Retrying…',\n 'error.retryingStatus': 'Retrying',\n 'error.requestId': 'Request ID',\n 'error.copyRequestId': 'Copy request ID',\n 'error.requestIdCopied': 'Request ID copied',\n 'error.details': 'Technical details',\n 'dateRange.label': 'Date range',\n 'dateRange.any': 'Any date',\n 'common.clearItem': 'Clear {label}',\n 'upload.label': 'Upload files',\n 'upload.files': 'Files',\n 'upload.failed': 'Upload failed',\n 'upload.typeRejected': 'File type not accepted',\n 'upload.tooLarge': 'Exceeds the {size} limit',\n 'upload.drop': 'Drag files here or',\n 'upload.uploading': 'Uploading {name}',\n 'upload.notUploaded': '{error} · not uploaded',\n 'upload.uploaded': '{size} · uploaded',\n 'upload.retry': 'Retry {name}',\n 'upload.browse': 'Browse files',\n 'upload.hint': '{types} · max {size} per file',\n 'upload.done': '{name} uploaded.',\n 'upload.error': '{name} failed to upload.',\n 'upload.added': '{count, plural, one {# file added.} other {# files added.}}',\n 'upload.rejected': '{count} rejected.',\n 'upload.removed': '{name} removed.',\n 'comments.label': 'Comments',\n 'comments.placeholder': 'Add a comment…',\n 'comments.submit': 'Comment',\n 'comments.write': 'Write a comment',\n 'calendar.events': '{count, plural, one {# event} other {# events}}',\n 'common.expandItem': 'Expand {label}',\n 'common.collapseItem': 'Collapse {label}',\n // Kanban board\n 'kanban.label': 'Board',\n 'kanban.roleDescription': 'draggable card',\n 'kanban.instructions':\n 'Press Space to pick up the card. Use the arrow keys to move it, Space or Enter to drop it, Escape to cancel.',\n 'kanban.pickedUp': 'Picked up {card}. Position {position} of {total} in {column}.',\n 'kanban.moved': '{card} moved to position {position} of {total} in {column}.',\n 'kanban.dropped': '{card} dropped at position {position} of {total} in {column}.',\n 'kanban.cancelled': 'Move cancelled. {card} returned to {column}.',\n 'kanban.empty': 'No cards',\n 'kanban.cards': '{count, plural, one {# card} other {# cards}}',\n // Chat\n 'chat.messageLabel': 'Message',\n 'chat.placeholder': 'Message the assistant…',\n 'chat.send': 'Send message',\n 'chat.stop': 'Stop generating',\n 'chat.attach': 'Attach files',\n 'chat.attachments': 'Attachments',\n 'chat.hintSend': 'to send',\n 'chat.hintNewLine': 'for a new line',\n 'chat.shiftEnter': 'Shift + Enter',\n 'chat.overLimit': 'characters, over the limit',\n 'chat.conversation': 'Conversation',\n 'chat.messages': 'Messages',\n 'chat.details': 'Details',\n 'chat.resizePanel': 'Resize {panel} panel',\n 'chat.scrollToBottom': 'Scroll to latest message',\n 'chat.suggestions': 'Suggested prompts',\n 'chat.sources': 'Sources',\n 'chat.source': 'Source {index}: {title}',\n 'chat.you': 'You',\n 'chat.assistant': 'Assistant',\n 'chat.system': 'System',\n 'chat.tool': 'Tool',\n 'chat.participant': 'Participant',\n 'chat.responding': '{author} is responding…',\n 'chat.actionsFor': 'Actions for {name} message',\n 'chat.copyMessage': 'Copy message',\n 'chat.copyCode': 'Copy code',\n 'chat.copiedCode': 'Copied code',\n 'chat.goodResponse': 'Good response',\n 'chat.badResponse': 'Bad response',\n 'chat.taskDone': 'Done',\n 'chat.taskNotDone': 'Not done',\n 'chat.image': 'Image: {alt}',\n 'chat.untitled': 'untitled',\n 'chat.openSource': 'Open source',\n 'toolCall.calling': 'Calling',\n 'toolCall.called': 'Called',\n 'toolCall.failed': 'Failed to call',\n 'toolCall.arguments': 'Arguments',\n 'toolCall.result': 'Result',\n 'toolCall.waiting': 'Waiting for the result…',\n 'chat.surfaceExampleTitle': 'Review your details',\n 'chat.surfaceExampleName': 'Name',\n 'chat.surfaceExampleSubmit': 'Submit',\n 'chat.surfaceExampleChoice': 'Language',\n 'chat.surfaceExampleEnglish': 'English',\n 'chat.surfaceExampleSpanish': 'Spanish',\n 'chat.surfaceExampleNotify': 'Send updates',\n 'chat.surfaceExampleBadge': 'Draft',\n 'chat.surfaceExampleNotice': 'Check the information before submitting.',\n 'chat.surfaceExampleStatus': 'Submitted for {name}',\n 'chat.surfaceExamplePatch': 'Update name',\n 'chat.surfaceExampleRemove': 'Remove content',\n 'chat.surfaceExampleReset': 'Reset',\n 'chat.surfaceExampleUnsupported': 'Show unsupported content',\n 'chat.surfaceExampleRejected': 'Unsupported content was rejected.',\n 'chat.surfaceExampleLink': 'Read the documentation',\n 'chat.surfaceUnsupported': 'This content cannot be shown',\n 'chat.surfaceAgentContent': 'Agent content',\n 'chat.typing': '{author} is typing',\n 'chat.feedback': 'Response feedback',\n 'chat.feedbackTitle': 'What went wrong?',\n 'chat.feedbackReason': 'Reason',\n 'chat.feedbackComment': 'Comment (optional)',\n 'chat.feedbackPlaceholder': 'Tell us more…',\n 'chat.feedbackSubmit': 'Send feedback',\n 'chat.feedbackThanks': 'Thanks for your feedback',\n 'chat.feedbackCleared': 'Feedback removed',\n 'chat.reasonInaccurate': 'Inaccurate',\n 'chat.reasonUnhelpful': 'Not helpful',\n 'chat.reasonIncomplete': 'Incomplete',\n 'chat.reasonUnsafe': 'Harmful or unsafe',\n 'chat.reasonOther': 'Other',\n 'chat.regenerate': 'Regenerate',\n 'chat.uploading': 'Uploading {name}',\n 'chat.uploadFailed': 'Upload failed',\n 'chat.retryUpload': 'Retry uploading {name}',\n 'chat.dropFiles': 'Drop files to attach',\n 'chat.fileTooLarge': '{name} is larger than {max}',\n 'chat.fileTypeNotAllowed': '{name} is not an allowed file type',\n 'chat.tooManyFiles': 'You can attach up to {max} files',\n 'chat.model': 'Model',\n 'chat.selectModel': 'Select a model',\n 'chat.capabilityVision': 'Vision',\n 'chat.capabilityTools': 'Tools',\n 'chat.capabilityReasoning': 'Reasoning',\n 'chat.capabilityFiles': 'Files',\n 'chat.capabilityWeb': 'Web search',\n 'chat.capabilityAudio': 'Audio',\n 'chat.contextWindow': '{size} context',\n 'chat.unavailable': 'Unavailable',\n // Credential disclosure dialog\n 'credentialDisclosure.title': 'Credential secret',\n 'credentialDisclosure.description': 'Copy this value and store it securely.',\n 'credentialDisclosure.credentialId': 'Credential ID',\n 'credentialDisclosure.expiry': 'Expires',\n 'credentialDisclosure.secret': 'Secret',\n 'credentialDisclosure.show': 'Show secret',\n 'credentialDisclosure.hide': 'Hide secret',\n 'credentialDisclosure.copy': 'Copy secret',\n 'credentialDisclosure.copied': 'Copied',\n 'credentialDisclosure.success': 'Secret copied to clipboard',\n 'credentialDisclosure.failure': 'Copy failed. Select and copy the value manually.',\n 'credentialDisclosure.close': 'Close',\n 'credentialDisclosure.warningTitle': 'Save this new secret',\n 'credentialDisclosure.warningText': 'This value replaces the previous secret. Copy it now; it is shown only once.',\n // Batch A: CopyButton, SplitButton, SecretField, KeyValueEditor, DiffViewer\n 'splitButton.more': 'More options',\n 'secret.show': 'Show secret',\n 'secret.hide': 'Hide secret',\n 'secret.copy': 'Copy secret',\n 'secret.copied': 'Secret copied to clipboard',\n 'secret.hidden': 'Value hidden',\n 'secret.rotate': 'Rotate',\n 'secret.rotateTitle': 'Rotate this secret?',\n 'secret.rotateDescription':\n 'A new value is generated and the current one stops working. Anything still using it fails until it is updated.',\n 'secret.rotateConfirm': 'Rotate secret',\n 'secret.rotated': 'Secret rotated',\n 'secret.rotateFailed': 'Rotation failed',\n 'secret.created': 'Created',\n 'secret.lastUsed': 'Last used',\n 'secret.neverUsed': 'Never used',\n 'kv.key': 'Key',\n 'kv.value': 'Value',\n 'kv.keyRow': 'Key, row {row}',\n 'kv.valueRow': 'Value, row {row}',\n 'kv.secretRow': 'Secret value, row {row}',\n 'kv.removeRow': 'Remove row {row}',\n 'kv.rowRemoved': 'Row removed',\n 'kv.add': 'Add variable',\n 'kv.empty': 'No variables yet.',\n 'kv.paste': 'Paste .env',\n 'kv.pasteLabel': '.env contents',\n 'kv.pasteHint': 'One KEY=value per line. Lines starting with # are ignored; existing keys are updated.',\n 'kv.import': 'Add variables',\n 'kv.imported': '{count, plural, one {# variable imported} other {# variables imported}}',\n 'kv.copyEnv': 'Copy as .env',\n 'kv.errDuplicate': 'Duplicate key',\n 'kv.errPattern': 'Use letters, digits and underscores, not starting with a digit',\n 'kv.errKeyRequired': 'Key is required',\n 'kv.errValueRequired': 'Value is required',\n 'diff.label': 'Diff',\n 'diff.view': 'Diff view',\n 'diff.split': 'Split',\n 'diff.unified': 'Unified',\n 'diff.addedLine': 'Added line {line}:',\n 'diff.removedLine': 'Removed line {line}:',\n 'diff.additions': '{count, plural, one {# addition} other {# additions}}',\n 'diff.deletions': '{count, plural, one {# deletion} other {# deletions}}',\n 'diff.expand': '{count, plural, one {Expand # line} other {Expand # lines}}',\n 'diff.noChanges': 'No changes',\n 'diff.old': 'Old',\n 'diff.new': 'New',\n // Batch C: async combobox, terminal\n 'combobox.create': 'Create “{label}”',\n 'combobox.loadFailed': 'Couldn’t load options.',\n 'terminal.label': 'Terminal output',\n 'terminal.toolbar': 'Terminal actions',\n 'terminal.jumpToLatest': 'Jump to latest',\n 'terminal.newLines': '{count, plural, one {# new line} other {# new lines}}',\n 'terminal.wrap': 'Wrap lines',\n 'terminal.copyAll': 'Copy all',\n 'terminal.search': 'Search output',\n 'terminal.matches': '{current} of {total}',\n 'terminal.noMatches': 'No matches',\n 'terminal.nextMatch': 'Next match',\n 'terminal.previousMatch': 'Previous match',\n // DateField and DateRangeField\n 'dateField.label': 'Date',\n 'dateField.year': 'Year',\n 'dateField.month': 'Month',\n 'dateField.day': 'Day',\n 'dateField.start': 'Start date',\n 'dateField.end': 'End date',\n 'dateField.segmentInRange': '{range}, {segment}',\n // TimePicker, DatePicker withTime, DateTimeRangePicker, PermissionMatrix, QueryBuilder, ScheduleInput (cron)\n 'timePicker.label': 'Time',\n 'timePicker.hours': 'Hours',\n 'timePicker.minutes': 'Minutes',\n 'timePicker.seconds': 'Seconds',\n 'timePicker.period': 'AM/PM',\n 'timePicker.empty': 'Empty',\n 'datePicker.time': 'Time',\n 'datePicker.done': 'Done',\n 'datePicker.dateTimePlaceholder': 'Pick a date and time',\n 'timeRange.placeholder': 'Pick a time range',\n 'timeRange.choose': 'Choose time range',\n 'timeRange.presets': 'Quick ranges',\n 'timeRange.lastMinutes': 'Last {count, plural, one {minute} other {# minutes}}',\n 'timeRange.lastHours': 'Last {count, plural, one {hour} other {# hours}}',\n 'timeRange.lastDays': 'Last {count, plural, one {day} other {# days}}',\n 'timeRange.custom': 'Custom range',\n 'timeRange.mode': 'Range type',\n 'timeRange.relative': 'Relative',\n 'timeRange.absolute': 'Absolute',\n 'timeRange.last': 'Last',\n 'timeRange.amount': 'Amount',\n 'timeRange.unit': 'Unit',\n 'timeRange.minutes': 'Minutes',\n 'timeRange.hours': 'Hours',\n 'timeRange.days': 'Days',\n 'timeRange.start': 'Start',\n 'timeRange.end': 'End',\n 'timeRange.startTime': 'Start time',\n 'timeRange.endTime': 'End time',\n 'timeRange.apply': 'Apply',\n 'timeRange.endBeforeStart': 'The end must be after the start.',\n 'timeRange.incomplete': 'Pick a start and an end.',\n 'permissionMatrix.label': 'Permissions',\n 'permissionMatrix.permission': 'Permission',\n 'permissionMatrix.allowed': 'Allowed',\n 'permissionMatrix.denied': 'Denied',\n 'permissionMatrix.inherited': 'Inherited',\n 'permissionMatrix.inheritedAs': 'Inherited ({state})',\n 'permissionMatrix.cell': '{permission}, {role}: {state}',\n 'permissionMatrix.readOnly': 'Read-only',\n 'permissionMatrix.readOnlyRole': '{role} permissions cannot be changed.',\n 'queryBuilder.label': 'Query',\n 'queryBuilder.group': 'Condition group',\n 'queryBuilder.combinator': 'Combine conditions with',\n 'queryBuilder.and': 'AND',\n 'queryBuilder.or': 'OR',\n 'queryBuilder.condition': 'Condition {index}',\n 'queryBuilder.field': 'Field',\n 'queryBuilder.operator': 'Operator',\n 'queryBuilder.value': 'Value',\n 'queryBuilder.valueFrom': 'From',\n 'queryBuilder.valueTo': 'To',\n 'queryBuilder.rangeInverted': \"'From' must not be after 'To'.\",\n 'queryBuilder.addCondition': 'Add condition',\n 'queryBuilder.addGroup': 'Add group',\n 'queryBuilder.removeCondition': 'Remove condition {index}',\n 'queryBuilder.removeGroup': 'Remove group',\n 'queryBuilder.empty': 'No conditions: every record matches.',\n 'queryBuilder.true': 'true',\n 'queryBuilder.false': 'false',\n 'queryBuilder.between': '{from} and {to}',\n 'queryBuilder.op.eq': 'is',\n 'queryBuilder.op.neq': 'is not',\n 'queryBuilder.op.contains': 'contains',\n 'queryBuilder.op.notContains': 'does not contain',\n 'queryBuilder.op.startsWith': 'starts with',\n 'queryBuilder.op.endsWith': 'ends with',\n 'queryBuilder.op.gt': 'greater than',\n 'queryBuilder.op.gte': 'at least',\n 'queryBuilder.op.lt': 'less than',\n 'queryBuilder.op.lte': 'at most',\n 'queryBuilder.op.between': 'is between',\n 'queryBuilder.op.in': 'is any of',\n 'queryBuilder.op.notIn': 'is none of',\n 'queryBuilder.op.before': 'is before',\n 'queryBuilder.op.after': 'is after',\n 'queryBuilder.op.isEmpty': 'is empty',\n 'queryBuilder.op.isNotEmpty': 'is not empty',\n 'queryBuilder.op.isTrue': 'is true',\n 'queryBuilder.op.isFalse': 'is false',\n 'scheduleInput.label': 'Schedule',\n 'scheduleInput.frequency': 'Frequency',\n 'scheduleInput.hourly': 'Hourly',\n 'scheduleInput.daily': 'Daily',\n 'scheduleInput.weekly': 'Weekly',\n 'scheduleInput.monthly': 'Monthly',\n 'scheduleInput.custom': 'Custom',\n 'scheduleInput.atMinute': 'At minute',\n 'scheduleInput.atTime': 'At',\n 'scheduleInput.onDays': 'On',\n 'scheduleInput.dayOfMonth': 'Day of month',\n 'scheduleInput.expression': 'Cron expression',\n 'scheduleInput.expressionHint': 'minute hour day-of-month month day-of-week',\n 'scheduleInput.nextRuns': 'Next runs ({timeZone})',\n 'scheduleInput.noRuns': 'No upcoming runs.',\n 'scheduleInput.localTime': 'local time',\n 'cron.error.empty': 'Enter a cron expression.',\n 'cron.error.fieldCount': 'Expected 5 fields (minute hour day month weekday), found {count}.',\n 'cron.error.invalid': 'Invalid {field} value “{value}”.',\n 'cron.error.range': '{field} value “{value}” is outside {min}–{max}.',\n 'cron.error.step': 'Invalid step “{value}” in {field}.',\n 'cron.error.macro': 'Unsupported macro “{value}”.',\n 'cron.field.minute': 'minute',\n 'cron.field.hour': 'hour',\n 'cron.field.dayOfMonth': 'day of month',\n 'cron.field.month': 'month',\n 'cron.field.dayOfWeek': 'day of week',\n 'cron.everyMinute': 'Every minute',\n 'cron.everyNMinutes': 'Every {count, plural, one {minute} other {# minutes}}',\n 'cron.everyHour': 'Every hour',\n 'cron.everyHourAt': 'Every hour at {count, plural, one {minute} other {minutes}} {minutes}',\n 'cron.everyNHours': 'Every {count, plural, one {hour} other {# hours}}',\n 'cron.everyNHoursAt': 'Every {count, plural, one {hour} other {# hours}} at minute {minute}',\n 'cron.minutesPast': 'At {count, plural, one {minute} other {minutes}} {minutes} past the hour',\n 'cron.at': 'At {times}',\n 'cron.dailyAt': 'Every day at {times}',\n 'cron.weekdaysAt': 'Every weekday at {times}',\n 'cron.weeklyAt': 'Every {days} at {times}',\n 'cron.monthlyAt': 'Monthly on {count, plural, one {day} other {days}} {days} at {times}',\n 'cron.betweenHours': 'between {start} and {end}',\n 'cron.duringHours': 'during {count, plural, one {hour} other {hours}} {hours}',\n 'cron.onWeekdays': 'on weekdays',\n 'cron.onDays': 'on {days}',\n 'cron.onDaysOfMonth': 'on {count, plural, one {day} other {days}} {days} of the month',\n 'cron.or': '{a} or {b}',\n 'cron.inMonths': 'in {months}',\n 'cron.join': '{base}, {part}',\n 'formSection.title': 'General',\n 'formSection.description': 'Basic details shown to everyone who can access this project.',\n 'settingsRow.label': 'Deployment notifications',\n 'settingsRow.description': 'Email the project owners when a deployment fails or is rolled back.',\n 'validationSummary.title': 'There {count, plural, one {is 1 problem} other {are {count} problems}} with this form',\n 'ssoButtons.label': 'Single sign-on',\n 'authValidation.emailInvalid': 'Enter a valid email address.',\n 'authValidation.identifierInvalid': 'Enter a valid identifier.',\n 'authValidation.fieldRequired': 'Enter {label}.',\n 'authValidation.fallbackError': 'Something went wrong. Try again.',\n 'signIn.eyebrow': 'Secure access',\n 'signIn.title': 'Sign in to your workspace',\n 'signIn.description': 'Use your work email to continue.',\n 'signIn.formLabel': 'Sign in',\n 'signIn.identifierLabel': 'Email',\n 'signIn.identifierPlaceholder': 'name@company.com',\n 'signIn.password': 'Password',\n 'signIn.forgotPassword': 'Forgot password?',\n 'signIn.passwordRequired': 'Enter your password.',\n 'signIn.remember': 'Keep me signed in',\n 'signIn.submit': 'Sign in',\n 'signIn.divider': 'Or continue with',\n 'signIn.signUpPrompt': 'New here?',\n 'signIn.signUp': 'Create an account',\n 'signIn.fallbackError': 'Sign-in failed. Try again.',\n 'dangerZone.title': 'Danger zone',\n 'dangerZone.description': 'These actions affect the whole project and every member who can access it.',\n 'dangerZone.confirmationTitle': '{title}?',\n 'dangerZone.confirmPrompt': 'Type {text} to confirm',\n 'dangerZone.cancel': 'Cancel',\n 'dangerZone.fallbackError': 'Something went wrong. Try again.',\n 'credentialDisclosure.copiedFor': '{label}: {copied}',\n 'createApiKey.title': 'Create API key',\n 'createApiKey.description': 'Keys act on behalf of this workspace. Grant only the scopes the integration needs.',\n 'createApiKey.name': 'Name',\n 'createApiKey.namePlaceholder': 'ci-deployments',\n 'createApiKey.nameRequired': 'Give the key a name.',\n 'createApiKey.scopes': 'Scopes',\n 'createApiKey.scopesRequired': 'Select at least one scope.',\n 'createApiKey.expiration': 'Expiration',\n 'createApiKey.errorTitle': 'Key not created',\n 'createApiKey.fallbackError': 'The key could not be created.',\n 'createApiKey.cancel': 'Cancel',\n 'createApiKey.submit': 'Create key',\n 'createApiKey.successTitle': 'API key created',\n 'createApiKey.successDescription': 'Store it in your secrets manager. Use it as a bearer token.',\n 'createApiKey.warningTitle': 'Copy this key now',\n 'createApiKey.warningDescription':\n 'For your security it is shown only once. If you lose it, revoke it and create a new one.',\n 'createApiKey.secretLabel': 'New API key',\n 'createApiKey.done': 'Done',\n 'inviteMembers.title': 'Invite members',\n 'inviteMembers.description': 'Invitations expire after 7 days. Separate addresses with commas or Enter.',\n 'inviteMembers.emails': 'Email addresses',\n 'inviteMembers.placeholder': 'name@company.com',\n 'inviteMembers.listLabel': 'Invited addresses',\n 'inviteMembers.role': 'Role',\n 'inviteMembers.message': 'Message (optional)',\n 'inviteMembers.messagePlaceholder': 'Join us on the billing-dashboard project.',\n 'inviteMembers.emailRequired': 'Add at least one email address.',\n 'inviteMembers.emailInvalid': '{email} is not a valid email address',\n 'inviteMembers.fixInvalid': 'Fix {count} invalid {count, plural, one {address} other {addresses}}.',\n 'inviteMembers.errorTitle': 'Invitations not sent',\n 'inviteMembers.fallbackError': 'The invitations could not be sent.',\n 'inviteMembers.cancel': 'Cancel',\n 'inviteMembers.submit': 'Send invitation',\n 'inviteMembers.submitMany': 'Send {count} invitations',\n 'forgotPassword.formLabel': 'Reset password request',\n 'forgotPassword.eyebrow': 'Account recovery',\n 'forgotPassword.title': 'Forgot your password?',\n 'forgotPassword.description': \"Enter the email you sign in with and we'll send you a reset link.\",\n 'forgotPassword.sentTitle': 'Check your email',\n 'forgotPassword.sentDescription':\n 'If an account exists for {email}, you will receive a link to reset your password. It expires in 1 hour.',\n 'forgotPassword.addressFallback': 'that address',\n 'forgotPassword.sentStatus': 'Reset link sent.',\n 'forgotPassword.fallbackError': 'The reset link could not be sent.',\n 'forgotPassword.backToSignIn': 'Back to sign in',\n 'forgotPassword.resend': 'Resend link',\n 'forgotPassword.changeEmail': 'Use a different email',\n 'forgotPassword.identifierLabel': 'Email',\n 'forgotPassword.identifierPlaceholder': 'name@company.com',\n 'forgotPassword.submit': 'Send reset link',\n 'mfaChallenge.eyebrow': 'Two-step verification',\n 'mfaChallenge.title': 'Enter your verification code',\n 'mfaChallenge.backupTitle': 'Use a backup code',\n 'mfaChallenge.backupDescription':\n 'Enter one of the backup codes you saved when you turned on two-step verification. Each code works once.',\n 'mfaChallenge.destinationDescription': 'We sent a {length}-digit code to {destination}.',\n 'mfaChallenge.description': 'Open your authenticator app and enter the {length}-digit code.',\n 'mfaChallenge.formLabel': 'Verify your identity',\n 'mfaChallenge.codeLabel': 'Verification code',\n 'mfaChallenge.codeRequired': 'Enter all {length} digits.',\n 'mfaChallenge.backupLabel': 'Backup code',\n 'mfaChallenge.backupPlaceholder': 'xxxx-xxxx',\n 'mfaChallenge.backupHint': 'Backup codes are 8 characters, with or without the dash.',\n 'mfaChallenge.backupRequired': 'Enter a backup code.',\n 'mfaChallenge.submit': 'Verify',\n 'mfaChallenge.useCode': 'Use a verification code',\n 'mfaChallenge.resendIn': 'Resend code in {remaining}s',\n 'mfaChallenge.resend': 'Resend code',\n 'mfaChallenge.resent': 'A new code was sent.',\n 'mfaChallenge.backToSignIn': 'Back to sign in',\n 'mfaChallenge.fallbackError': 'That code did not work. Try again.',\n 'resetPassword.eyebrow': 'Account recovery',\n 'resetPassword.title': 'Set a new password',\n 'resetPassword.description': 'Use at least {minimum} characters. Avoid passwords you use elsewhere.',\n 'resetPassword.newPassword': 'New password',\n 'resetPassword.confirmPassword': 'Confirm password',\n 'resetPassword.passwordTooShort': 'Use at least {minimum} characters.',\n 'resetPassword.passwordMismatch': \"Passwords don't match.\",\n 'resetPassword.submit': 'Update password',\n 'resetPassword.successTitle': 'Password updated',\n 'resetPassword.successDescription': 'You can now sign in with your new password. Other sessions were signed out.',\n 'resetPassword.successStatus': 'Password updated.',\n 'resetPassword.continue': 'Continue to sign in',\n 'resetPassword.fallbackError': 'Your password could not be updated.',\n 'signUp.eyebrow': 'Get started',\n 'signUp.title': 'Create your account',\n 'signUp.description': 'Set up a workspace for your team in a couple of minutes.',\n 'signUp.name': 'Full name',\n 'signUp.namePlaceholder': 'Avery Collins',\n 'signUp.nameRequired': 'Enter your name.',\n 'signUp.email': 'Work email',\n 'signUp.emailPlaceholder': 'name@company.com',\n 'signUp.password': 'Password',\n 'signUp.passwordTooShort': 'Use at least {minimum} characters.',\n 'signUp.termsRequired': 'Accept the terms to continue.',\n 'signUp.terms': 'Terms',\n 'signUp.privacy': 'Privacy Policy',\n 'signUp.termsConsent': 'I agree to the {terms} and {privacy}.',\n 'signUp.submit': 'Create account',\n 'signUp.divider': 'Or sign up with',\n 'signUp.signInPrompt': 'Already have an account?',\n 'signUp.signIn': 'Sign in',\n 'signUp.policyLoading': 'Loading sign-up policy…',\n 'signUp.fallbackError': 'The account could not be created.',\n} as const;\n\n/** Every built-in message key. */\nexport type MessageKey = keyof typeof en;\n/** A complete catalog: one string per built-in key. */\nexport type Messages = Record<MessageKey, string>;\n","import type { Messages } from './en';\n\n/** Built-in Spanish catalog. */\nexport const es: Messages = {\n 'themeScope.title': 'Vista previa clara',\n 'themeScope.description': 'Esta tarjeta y su menú usan el tema claro.',\n 'themeScope.choice': 'Opción de vista previa',\n 'themeScope.personal': 'Personal',\n 'themeScope.nested': 'Una región oscura dentro de una región clara.',\n 'themeScope.release': 'Liberar tema forzado',\n 'themeScope.force': 'Forzar tema claro',\n\n 'resourceDetail.overview': 'Resumen',\n 'resourceDetail.activity': 'Actividad',\n 'resourceDetail.settings': 'Configuración',\n 'resourceDetail.sections': 'Secciones del recurso',\n\n 'error.title': 'No se pudieron cargar los despliegues',\n 'error.message': 'El servicio no respondió a tiempo. Tus datos están a salvo; vuelve a intentarlo en un momento.',\n 'error.support': 'Contactar con soporte',\n\n 'emptyState.noAccess.title': 'No tienes acceso a {resource}',\n 'emptyState.noAccess.description': 'Pide a {owner} que te asigne un rol con permisos de {resource}.',\n 'emptyState.noAccess.request': 'Solicitar acceso',\n 'emptyState.noAccess.requested': 'Acceso solicitado',\n 'emptyState.noAccess.sent': 'Solicitud de acceso enviada',\n\n 'emptyState.noResults.queryTitleBefore': 'No hay {entity} que coincidan con “',\n 'emptyState.noResults.queryTitleAfter': '”',\n 'emptyState.noResults.title': 'No se encontraron {entity}',\n 'emptyState.noResults.description':\n 'Revisa la ortografía o prueba una búsqueda más amplia{count, plural, =0 {} one { con {count} filtro aplicado} other { con {count} filtros aplicados}}.',\n 'emptyState.noResults.clearFilters': 'Borrar filtros',\n 'emptyState.noResults.clearSearch': 'Borrar búsqueda',\n\n 'emptyState.firstRun.title': 'Crea tu primer proyecto',\n 'emptyState.firstRun.description':\n 'Los proyectos agrupan tus servicios, entornos y despliegues. Crea uno desde un repositorio en un par de minutos.',\n 'emptyState.firstRun.action': 'Nuevo proyecto',\n 'emptyState.firstRun.guide': 'Leer la guía',\n\n 'callout.title': 'Has usado el 92% de tus minutos de compilación',\n 'callout.description':\n 'Las compilaciones se pondrán en cola al alcanzar el límite mensual. Mejora el plan o reduce las compilaciones simultáneas.',\n 'callout.upgrade': 'Mejorar el plan',\n 'callout.viewUsage': 'Ver uso',\n\n 'descriptionList.title': 'Configuración',\n 'descriptionList.description': 'Configuración de este despliegue.',\n 'descriptionList.edit': 'Editar',\n 'descriptionList.copy': 'Copiar {label}',\n 'descriptionList.copied': '{label} copiado',\n\n 'pageHeader.title': 'Despliegues',\n 'pageHeader.description': 'Todas las compilaciones y versiones de este proyecto en sus entornos.',\n 'pageHeader.moreActions': 'Más acciones',\n\n 'logViewer.title': 'Registros',\n 'logViewer.level.debug': 'DEBUG',\n 'logViewer.level.info': 'INFO',\n 'logViewer.level.warn': 'AVISO',\n 'logViewer.level.error': 'ERROR',\n 'logViewer.levelFilterOption.debug': 'debug',\n 'logViewer.levelFilterOption.info': 'info',\n 'logViewer.levelFilterOption.warn': 'aviso',\n 'logViewer.levelFilterOption.error': 'error',\n 'logViewer.levelFilter': 'Niveles de registro',\n 'logViewer.searchLabel': 'Buscar en los registros',\n 'logViewer.searchPlaceholder': 'Buscar…',\n 'logViewer.follow': 'Seguir',\n 'logViewer.count': '{visible} de {total}',\n 'logViewer.empty': 'Ninguna línea coincide con los filtros actuales.',\n 'logViewer.inspect': 'Inspeccionar evento {timestamp}',\n 'logViewer.copy': 'Copiar línea {timestamp}',\n\n 'pageHeader.sections': 'Secciones de la página',\n 'thumbnail.uploading': 'Subiendo {label}',\n 'thumbnail.error': 'Error al subir',\n 'overflowList.more': '+{count} más',\n 'overflowList.title': '{count} más',\n 'bottomSheet.handle': 'Redimensionar panel',\n 'bottomSheet.handleHint': 'Flecha arriba expande, flecha abajo contrae.',\n 'bottomSheet.expanded': 'Panel expandido.',\n 'bottomSheet.position': 'Panel a la altura {count} de {total}.',\n 'megaMenu.label': 'Principal',\n 'virtualList.empty': 'Sin elementos.',\n 'jsonViewer.copyPath': 'Copiar ruta',\n 'jsonViewer.copyValue': 'Copiar valor',\n 'jsonViewer.selectHint': 'Selecciona un nodo para copiar su ruta o valor',\n 'jsonViewer.truncated': 'Truncado',\n 'jsonViewer.copyFullHint': 'Copiar valor copia el valor completo, sin truncar',\n 'jsonViewer.keys': '{count, plural, one {# clave} other {# claves}}',\n 'jsonViewer.items': '{count, plural, one {# elemento} other {# elementos}}',\n 'jsonViewer.root': '(raíz)',\n 'carousel.previous': 'Diapositiva anterior',\n 'carousel.next': 'Diapositiva siguiente',\n 'carousel.play': 'Iniciar presentación automática',\n 'carousel.pause': 'Detener presentación automática',\n 'carousel.slide': '{count} de {total}',\n 'carousel.goTo': 'Ir a la diapositiva {count}',\n 'carousel.pickers': 'Elegir diapositiva',\n 'lightbox.title': 'Visor multimedia',\n 'lightbox.close': 'Cerrar visor',\n 'lightbox.zoomIn': 'Acercar',\n 'lightbox.zoomOut': 'Alejar',\n 'lightbox.thumbnails': 'Miniaturas',\n 'lightbox.counter': '{count} / {total}',\n 'lightbox.status': '{count} de {total}: {label}',\n 'lightbox.thumbnail': 'Mostrar {count}: {label}',\n 'tour.skip': 'Omitir recorrido',\n 'tour.close': 'Terminar recorrido',\n 'tour.counter': 'Paso {count} de {total}',\n 'listInput.key': 'Clave',\n 'listInput.value': 'Valor',\n 'listInput.add': 'Añadir fila',\n 'listInput.remove': 'Quitar fila {count}',\n 'listInput.moveUp': 'Subir fila {count}',\n 'listInput.moveDown': 'Bajar fila {count}',\n 'listInput.reveal': 'Mostrar valor {count}',\n 'listInput.duplicate': 'Clave duplicada',\n 'listInput.added': '{count, plural, one {Se añadió una fila.} other {Se añadieron # filas.}}',\n 'listInput.removed': 'Se quitó la fila {count}.',\n 'listInput.moved': 'Se movió a la posición {count}.',\n 'listInput.limit': 'Se alcanzó el límite de {count} filas.',\n 'listInput.pasteHint': 'Pega líneas CLAVE=valor para añadir varias filas.',\n 'timer.paused': 'En pausa',\n 'timer.stopped': 'Detenido',\n 'timer.unitHours': 'h',\n 'timer.unitMinutes': 'min',\n 'timer.unitSeconds': 's',\n 'treeList.error': 'No se pudieron cargar los elementos.',\n 'transferList.available': 'Disponibles',\n 'transferList.selected': 'Seleccionados',\n 'transferList.searchAvailable': 'Buscar disponibles',\n 'transferList.searchSelected': 'Buscar seleccionados',\n 'transferList.searchPlaceholder': 'Filtrar…',\n 'transferList.add': 'Añadir marcados',\n 'transferList.addAll': 'Añadir todos',\n 'transferList.remove': 'Quitar marcados',\n 'transferList.removeAll': 'Quitar todos',\n 'transferList.moveUp': 'Subir marcados',\n 'transferList.moveDown': 'Bajar marcados',\n 'transferList.actions': 'Acciones de transferencia',\n 'transferList.emptyAvailable': 'Todo está seleccionado.',\n 'transferList.emptySelected': 'Aún no hay elementos seleccionados.',\n 'transferList.reorderHint': 'Alt+↑/↓ cambia el orden',\n 'transferList.added': '{count, plural, one {Añadido # elemento.} other {Añadidos # elementos.}}',\n 'transferList.removed': '{count, plural, one {Quitado # elemento.} other {Quitados # elementos.}}',\n 'transferList.moved': 'Orden cambiado.',\n 'matchText.search': 'Buscar nombres sin acentos',\n 'matchText.results': 'Nombres coincidentes',\n 'virtualOptions.nodes': 'Nodos (10.000 opciones)',\n 'virtualOptions.remoteNodes': 'Nodos remotos (5.000 opciones)',\n 'virtualOptions.multiNodes': 'Nodos (5.000 opciones)',\n 'virtualOptions.node': 'nodo-{index}',\n 'virtualOptions.description': 'Detalles adicionales del nodo',\n 'virtualOptions.note':\n 'Solo se montan las filas visibles. La búsqueda y el teclado siguen accediendo a todas las opciones.',\n 'forms.invite.title': 'Invitar a un miembro',\n 'forms.bindings.width.xs': 'Muy pequeño',\n 'forms.bindings.width.sm': 'Pequeño',\n 'forms.bindings.width.md': 'Mediano',\n 'forms.bindings.width.lg': 'Grande',\n 'forms.bindings.width.xl': 'Muy grande',\n 'forms.bindings.helpers': 'Vinculación manual',\n 'forms.bindings.helpersSaved': 'Se guardaron {count} plazas. Notificaciones: {enabled}.',\n 'forms.bindings.title': 'Vinculación de controles',\n 'forms.bindings.disabled': 'Desactivar campos',\n 'forms.bindings.readOnly': 'Campos de solo lectura',\n 'forms.bindings.width': 'Ancho del campo',\n 'forms.bindings.fullWidth': 'Ancho completo',\n 'forms.bindings.name': 'Nombre',\n 'forms.bindings.note': 'Nota',\n 'forms.bindings.alerts': 'Notificaciones',\n 'forms.bindings.digest': 'Resumen semanal',\n 'forms.bindings.role': 'Nivel de acceso',\n 'forms.bindings.viewer': 'Lector',\n 'forms.bindings.editor': 'Editor',\n 'forms.bindings.tags': 'Temas',\n 'forms.bindings.updates': 'Novedades',\n 'forms.bindings.events': 'Eventos',\n 'forms.bindings.date': 'Fecha de inicio',\n 'forms.bindings.range': 'Intervalo de fechas',\n 'forms.bindings.time': 'Hora de inicio',\n 'forms.bindings.count': 'Plazas',\n 'forms.bindings.department': 'Departamento',\n 'forms.bindings.engineering': 'Ingeniería',\n 'forms.bindings.design': 'Diseño',\n 'forms.bindings.team': 'Equipo',\n 'forms.bindings.platform': 'Plataforma',\n 'forms.bindings.research': 'Investigación',\n 'forms.bindings.dependent': 'Las opciones de equipo se recargan al cambiar el departamento.',\n 'forms.bindings.saved': 'Preferencias guardadas.',\n 'fieldArray.item': 'Elemento {n}',\n 'fieldArray.examples.parameters': 'Parámetros de herramientas',\n 'fieldArray.examples.description': 'Configura las herramientas para ejecutarlas en orden.',\n 'fieldArray.examples.tool': 'Herramienta',\n 'fieldArray.examples.timeout': 'Tiempo de espera (ms)',\n 'fieldArray.examples.routing': 'Reglas de enrutamiento',\n 'fieldArray.examples.destination': 'Destino',\n 'fieldArray.examples.weight': 'Peso',\n 'fieldArray.examples.steps': 'Pasos',\n 'fieldArray.examples.headers': 'Cabeceras',\n 'fieldArray.examples.key': 'Clave',\n 'fieldArray.examples.value': 'Valor',\n 'fieldArray.duplicate': 'Duplicar {item}',\n 'fieldArray.duplicated': 'Duplicado {item}.',\n 'fieldArray.moveUp': 'Subir {item}',\n 'fieldArray.moveDown': 'Bajar {item}',\n 'fieldArray.moved': 'Movido a la posición {n} de {total}.',\n 'fieldArray.remove': 'Quitar {item}',\n 'fieldArray.removed': 'Quitado {item}.',\n 'fieldArray.empty': 'Aún no hay elementos.',\n 'fieldArray.add': 'Añadir elemento',\n 'fieldArray.added': 'Añadido {item}.',\n 'fieldArray.limit': 'Límite de {max} elementos alcanzado.',\n 'common.yes': 'Sí',\n 'common.no': 'No',\n 'statusTimeline.label': 'Historial de estado',\n 'statusTimeline.empty': 'Sin historial de estado',\n 'statusTimeline.showFewer': 'Ver menos',\n 'statusTimeline.showEarlier': 'Ver {count} {count, plural, one {cambio anterior} other {cambios anteriores}}',\n 'statusTimeline.actor': 'por',\n 'common.close': 'Cerrar',\n 'common.dismiss': 'Descartar',\n 'common.copy': 'Copiar',\n 'common.copied': 'Copiado',\n 'common.copiedToClipboard': 'Copiado al portapapeles',\n 'common.copyFailed': 'No se pudo copiar',\n 'common.clear': 'Borrar',\n 'common.clearAll': 'Borrar todo',\n 'common.clearSelection': 'Borrar selección',\n 'common.search': 'Buscar',\n 'common.searchPlaceholder': 'Buscar…',\n 'common.loading': 'Cargando…',\n 'common.noResults': 'Sin resultados',\n 'common.noMatches': 'Sin coincidencias.',\n 'common.selectPlaceholder': 'Seleccionar…',\n 'common.selectAll': 'Seleccionar todo',\n 'common.deselectAll': 'Deseleccionar todo',\n 'common.showOptions': 'Mostrar opciones',\n 'common.remove': 'Quitar',\n 'common.removeItem': 'Quitar {label}',\n 'common.removed': 'Se quitó {label}.',\n 'common.back': 'Atrás',\n 'common.next': 'Siguiente',\n 'common.previous': 'Anterior',\n 'common.finish': 'Finalizar',\n 'common.exit': 'Salir',\n 'common.cancel': 'Cancelar',\n 'common.save': 'Guardar',\n 'common.send': 'Enviar',\n 'common.stop': 'Detener',\n 'common.retry': 'Reintentar',\n 'common.edit': 'Editar',\n 'common.delete': 'Eliminar',\n 'common.filter': 'Filtrar',\n 'common.sort': 'Ordenar',\n 'common.viewAll': 'Ver todo',\n 'common.moreActions': 'Más acciones',\n 'common.openMenu': 'Abrir menú',\n 'common.more': '{count} más',\n 'common.moreInfo': 'Más información sobre {label}',\n 'common.fieldInvalid': 'Campo no válido',\n 'common.invalid': 'no válido: {error}',\n 'common.resize': 'Redimensionar',\n 'common.progress': 'Progreso',\n 'common.main': 'Principal',\n 'common.settings': 'Configuración',\n 'common.notifications': 'Notificaciones',\n 'common.unread': 'No leída:',\n 'common.results': '{count, plural, one {# resultado} other {# resultados}}',\n 'common.trend': 'Tendencia',\n 'skip.main': 'Saltar al contenido principal',\n 'skip.content': 'Saltar al contenido',\n 'skip.canvas': 'Saltar al lienzo',\n 'skip.document': 'Saltar al documento',\n 'skip.signIn': 'Saltar al formulario de acceso',\n 'skip.step': 'Saltar al paso',\n 'nav.navigation': 'Navegación',\n 'nav.openNavigation': 'Abrir navegación',\n 'nav.closeNavigation': 'Cerrar navegación',\n 'nav.sidebar': 'Barra lateral',\n 'nav.expandSidebar': 'Expandir barra lateral',\n 'nav.collapseSidebar': 'Contraer barra lateral',\n 'nav.onThisPage': 'En esta página',\n 'nav.pageActions': 'Acciones de la página',\n 'breadcrumbs.label': 'Ruta de navegación',\n 'breadcrumbs.expand': '{count, plural, one {Mostrar # nivel más} other {Mostrar # niveles más}}',\n 'pagination.label': 'Paginación',\n 'pagination.previous': 'Página anterior',\n 'pagination.next': 'Página siguiente',\n 'pagination.page': 'Página {page}',\n 'pagination.of': 'de',\n 'calendar.chooseMonth': '{label}, elegir mes',\n 'calendar.chooseYear': '{label}, elegir año',\n 'calendar.previousYear': 'Año anterior',\n 'calendar.nextYear': 'Año siguiente',\n 'calendar.previousYears': '{count} años anteriores',\n 'calendar.nextYears': '{count} años siguientes',\n 'calendar.month': 'Mes',\n 'calendar.year': 'Año',\n 'calendar.label': 'Calendario',\n 'calendar.localeDefaults': 'Valores predeterminados regionales',\n 'calendar.previousMonth': 'Mes anterior',\n 'calendar.nextMonth': 'Mes siguiente',\n 'calendar.today': 'Hoy',\n 'periodPicker.previousYear': 'Año anterior',\n 'periodPicker.nextYear': 'Año siguiente',\n 'periodPicker.quarter': 'T{quarter} {year}',\n 'periodPicker.previousYears': '12 años anteriores',\n 'periodPicker.nextYears': '12 años siguientes',\n 'periodPicker.yearPage': '{start}–{end}',\n 'periodPicker.yearTitle': '{year}',\n 'periodPicker.chooseYear': 'Elegir año',\n 'periodPicker.week': 'Semana {week} de {year}',\n 'periodPicker.chooseMonth': 'Elegir mes',\n 'periodPicker.range': '{start} – {end}',\n 'periodPicker.presets': 'Periodos predefinidos',\n 'periodPicker.thisWeek': 'Esta semana',\n 'periodPicker.lastWeek': 'La semana pasada',\n 'periodPicker.thisMonth': 'Este mes',\n 'periodPicker.lastMonth': 'El mes pasado',\n 'periodPicker.thisQuarter': 'Este trimestre',\n 'periodPicker.lastQuarter': 'El trimestre pasado',\n 'periodPicker.thisYear': 'Este año',\n 'periodPicker.lastYear': 'El año pasado',\n 'periodPicker.billingMonth': 'Mes de facturación',\n 'periodPicker.reportingQuarters': 'Trimestres del informe',\n 'periodPicker.reportingWeek': 'Semana del informe',\n 'periodPicker.reportingYear': 'Año del informe',\n 'periodPicker.yearCalendar': 'Selección de año en línea',\n 'periodPicker.wholePeriodDescription': 'El valor representa un periodo completo, que comienza a medianoche local.',\n 'periodPicker.rangeDescription': 'Elige dos trimestres para incluir todos los trimestres completos entre ellos.',\n 'periodPicker.isoDescription': 'Las semanas ISO van de lunes a domingo y usan el año de semana ISO.',\n 'periodPicker.placeholder': 'Elige un periodo',\n 'periodPicker.choose': 'Elegir periodo',\n 'datePicker.placeholder': 'Elige una fecha',\n 'datePicker.rangePlaceholder': 'Elige un rango de fechas',\n 'datePicker.choose': 'Elegir fecha',\n 'datePicker.chooseRange': 'Elegir rango de fechas',\n 'datePicker.presets': 'Rangos predefinidos',\n 'numberInput.decrease': 'Disminuir',\n 'numberInput.increase': 'Aumentar',\n 'otp.character': 'Carácter {index} de {total}',\n 'password.show': 'Mostrar contraseña',\n 'password.hide': 'Ocultar contraseña',\n 'password.strength': 'Seguridad:',\n 'password.tooWeak': 'Muy débil',\n 'password.weak': 'Débil',\n 'password.fair': 'Aceptable',\n 'password.good': 'Buena',\n 'password.strong': 'Fuerte',\n 'multiSelect.moreSelected': 'más seleccionados',\n 'tokenInput.entries': 'Entradas',\n 'link.external': '(se abre en una pestaña nueva)',\n 'toast.region': 'Notificaciones',\n 'toast.dismiss': 'Descartar notificación',\n 'theme.label': 'Tema',\n 'theme.light': 'Claro',\n 'theme.dark': 'Oscuro',\n 'theme.highContrast': 'Alto contraste',\n 'theme.system': 'Sistema',\n 'userMenu.label': 'Menú de la cuenta de {name}',\n 'userMenu.signOut': 'Cerrar sesión',\n 'notifications.markAllRead': 'Marcar todas como leídas',\n 'notifications.empty': 'Las notificaciones nuevas aparecerán aquí.',\n 'workspace.switch': 'Cambiar de espacio de trabajo',\n 'workspace.create': 'Crear espacio de trabajo',\n 'workspace.search': 'Buscar un espacio de trabajo…',\n 'workspace.empty': 'Ningún espacio de trabajo coincide.',\n 'commandPalette.label': 'Paleta de comandos',\n 'commandPalette.placeholder': 'Escribe un comando o busca…',\n 'commandPalette.recent': 'Recientes',\n 'commandPalette.trigger': 'Busca o ejecuta un comando',\n 'commandPalette.navigate': 'navegar',\n 'commandPalette.run': 'ejecutar',\n 'commandPalette.close': 'cerrar',\n 'theme.cycle': 'Tema: {current}. Cambiar a {next}',\n 'notifications.trigger': '{title}, {count} sin leer',\n 'notifications.new': '{count, plural, one {# nueva} other {# nuevas}}',\n 'notifications.emptyTitle': 'Estás al día',\n 'tokenInput.added': 'Se añadió {items}.',\n 'tokenInput.limit': 'Se alcanzó el límite de {max}.',\n 'avatar.more': 'más',\n 'stepper.step': 'Paso {step} de {total}',\n 'stepper.complete': 'completado',\n 'stepper.current': 'paso actual',\n 'stepper.upcoming': 'sin empezar',\n 'stepper.error': 'error',\n 'sparkline.noData': '{label}: sin datos',\n 'sparkline.single': '{label}: {value}',\n 'sparkline.summary':\n '{label}: {direction}{change} de {first} a {last} en {count} puntos (mínimo {min}, máximo {max})',\n 'sparkline.up': 'al alza',\n 'sparkline.down': 'a la baja',\n 'sparkline.flat': 'estable',\n 'table.scrollable': 'Tabla desplazable',\n 'codeBlock.code': 'Código',\n 'codeBlock.languageCode': 'Código {language}',\n 'codeBlock.wrap': 'Ajustar líneas',\n 'kbd.command': 'Comando',\n 'kbd.option': 'Opción',\n 'kbd.shift': 'Mayúsculas',\n 'kbd.control': 'Control',\n 'kbd.enter': 'Intro',\n 'kbd.backspace': 'Retroceso',\n 'kbd.tab': 'Tabulador',\n 'kbd.escape': 'Escape',\n 'kbd.up': 'Flecha arriba',\n 'kbd.down': 'Flecha abajo',\n 'kbd.left': 'Flecha izquierda',\n 'kbd.right': 'Flecha derecha',\n 'kbd.upDown': 'Flechas arriba y abajo',\n 'settings.section': 'Sección de configuración',\n 'wizard.exitTitle': '¿Salir de esta configuración?',\n 'wizard.exitDescription': 'Se perderá tu progreso en este paso.',\n 'wizard.leave': 'Salir',\n 'wizard.progressSummary': 'Resumen de {label}',\n 'wizard.stepAnnouncement': 'Paso {position} de {total}: {label}',\n 'wizard.finishing': 'Finalizando…',\n 'wizard.title': 'Crear recurso',\n 'wizard.details': 'Detalles',\n 'wizard.review': 'Revisar',\n 'wizard.stay': 'Quedarme',\n 'canvas.palette': 'Paleta',\n 'canvas.inspector': 'Inspector',\n 'canvas.console': 'Consola',\n 'canvas.main': 'Lienzo',\n 'canvas.smallScreen': 'Ábrelo en una pantalla más grande para editar. Aquí el lienzo es de solo lectura.',\n 'print.pageBreak': 'Salto de página',\n 'split.list': 'Lista',\n 'split.details': 'Detalles',\n 'inspector.pin': 'Fijar panel',\n 'inspector.close': 'Cerrar panel',\n 'inspector.toggle': 'Mostrar u ocultar panel',\n 'calendar.tomorrow': 'Mañana',\n 'calendar.previousWeek': 'Semana anterior',\n 'calendar.nextWeek': 'Semana siguiente',\n 'calendar.now': 'ahora',\n 'calendar.unavailable': '(no disponible)',\n 'calendar.availableTimes': 'Horarios disponibles',\n 'calendar.agenda': 'Agenda',\n 'calendar.emptyTitle': 'Nada programado',\n 'calendar.emptyDescription': 'No hay trabajo programado en este periodo.',\n 'table.loadMore': 'Cargar más',\n 'table.loadingMore': 'Cargando…',\n 'table.loadMoreGroup': 'Cargar más elementos',\n 'table.moreAvailable': 'Hay más elementos disponibles.',\n 'table.loadedSummary': '{count, plural, one {# elemento cargado} other {# elementos cargados}}',\n 'table.loadedAnnouncement': '{count, plural, one {# elemento añadido.} other {# elementos añadidos.}}',\n 'table.rows': 'Filas',\n 'table.collectionNoun': '{count, plural, one {elemento} other {elementos}}',\n 'table.visibleCount': '{noun}:',\n 'table.truncatedNote':\n '{count, plural, one {Solo se muestra el primer {formattedCount} {noun}; hay más.} other {Solo se muestran los primeros {formattedCount} {noun}; hay más.}}',\n 'table.rowsPerPage': 'Filas por página',\n 'table.pagination': 'Paginación: {noun}',\n 'table.selectAllPage': 'Seleccionar todas las filas de esta página',\n 'table.pageSelected': 'Las {count} filas de esta página están seleccionadas.',\n 'table.selectAllMatching': 'Seleccionar las {count} filas',\n 'table.allMatchingSelected': 'Las {count} filas están seleccionadas.',\n 'table.selectRow': 'Seleccionar {label}',\n 'table.selection': 'Selección',\n 'table.actions': 'Acciones',\n 'table.rowActions': 'Acciones de {label}',\n 'table.emptyDescription': 'Nada coincide con los filtros actuales.',\n 'table.columns': 'Columnas',\n 'table.visibleColumns': 'Columnas visibles',\n 'table.density': 'Densidad de filas',\n 'table.comfortable': 'Filas holgadas',\n 'table.compact': 'Filas compactas',\n 'table.editRow': 'Editar {label}',\n 'filters.label': 'Filtros',\n 'filters.savedView': 'Vista guardada',\n 'filters.savedViews': 'Vistas guardadas',\n 'filters.add': 'Añadir filtro',\n 'filters.active': 'Filtros activos',\n 'filters.remove': 'Quitar filtro {field}: {value}',\n 'loading.table': 'Cargando tabla',\n 'loading.list': 'Cargando lista',\n 'loading.page': 'Cargando página',\n 'bulk.label': 'Acciones en lote',\n 'bulk.of': 'de {total}',\n 'bulk.selected': '{count, plural, one {seleccionado} other {seleccionados}}',\n 'bulk.item': 'elemento',\n 'bulk.items': 'elementos',\n 'actionBar.unsaved': 'Tienes cambios sin guardar',\n 'actionBar.saved': 'Todos los cambios guardados',\n 'actionBar.save': 'Guardar cambios',\n 'actionBar.discard': 'Descartar',\n 'actionBar.saving': 'Guardando…',\n 'toolbar.label': 'Barra de herramientas de la página',\n 'toolbar.view': 'Vista',\n 'globalSearch.label': 'Búsqueda global',\n 'globalSearch.placeholder': 'Busca páginas, registros y acciones…',\n 'globalSearch.pages': 'Páginas',\n 'globalSearch.records': 'Registros',\n 'globalSearch.actions': 'Acciones',\n 'error.retry': 'Reintentar',\n 'error.retrying': 'Reintentando…',\n 'error.retryingStatus': 'Reintentando',\n 'error.requestId': 'ID de la solicitud',\n 'error.copyRequestId': 'Copiar ID de la solicitud',\n 'error.requestIdCopied': 'ID de la solicitud copiado',\n 'error.details': 'Detalles técnicos',\n 'dateRange.label': 'Rango de fechas',\n 'dateRange.any': 'Cualquier fecha',\n 'common.clearItem': 'Borrar {label}',\n 'upload.label': 'Subir archivos',\n 'upload.files': 'Archivos',\n 'upload.failed': 'Error al subir',\n 'upload.typeRejected': 'Tipo de archivo no admitido',\n 'upload.tooLarge': 'Supera el límite de {size}',\n 'upload.drop': 'Arrastra archivos aquí o',\n 'upload.uploading': 'Subiendo {name}',\n 'upload.notUploaded': '{error} · sin subir',\n 'upload.uploaded': '{size} · subido',\n 'upload.retry': 'Reintentar {name}',\n 'upload.browse': 'Examinar archivos',\n 'upload.hint': '{types} · máx. {size} por archivo',\n 'upload.done': '{name} subido.',\n 'upload.error': 'No se pudo subir {name}.',\n 'upload.added': '{count, plural, one {# archivo añadido.} other {# archivos añadidos.}}',\n 'upload.rejected': '{count, plural, one {# rechazado.} other {# rechazados.}}',\n 'upload.removed': '{name} eliminado.',\n 'comments.label': 'Comentarios',\n 'comments.placeholder': 'Añade un comentario…',\n 'comments.submit': 'Comentar',\n 'comments.write': 'Escribe un comentario',\n 'calendar.events': '{count, plural, one {# evento} other {# eventos}}',\n 'common.expandItem': 'Expandir {label}',\n 'common.collapseItem': 'Contraer {label}',\n 'kanban.label': 'Tablero',\n 'kanban.roleDescription': 'tarjeta arrastrable',\n 'kanban.instructions':\n 'Pulsa Espacio para tomar la tarjeta. Usa las flechas para moverla, Espacio o Intro para soltarla y Escape para cancelar.',\n 'kanban.pickedUp': 'Has tomado {card}. Posición {position} de {total} en {column}.',\n 'kanban.moved': '{card} movida a la posición {position} de {total} en {column}.',\n 'kanban.dropped': '{card} soltada en la posición {position} de {total} en {column}.',\n 'kanban.cancelled': 'Movimiento cancelado. {card} vuelve a {column}.',\n 'kanban.empty': 'Sin tarjetas',\n 'kanban.cards': '{count, plural, one {# tarjeta} other {# tarjetas}}',\n 'chat.messageLabel': 'Mensaje',\n 'chat.placeholder': 'Escribe al asistente…',\n 'chat.send': 'Enviar mensaje',\n 'chat.stop': 'Detener la generación',\n 'chat.attach': 'Adjuntar archivos',\n 'chat.attachments': 'Adjuntos',\n 'chat.hintSend': 'para enviar',\n 'chat.hintNewLine': 'para una línea nueva',\n 'chat.shiftEnter': 'Mayús + Intro',\n 'chat.overLimit': 'caracteres, por encima del límite',\n 'chat.conversation': 'Conversación',\n 'chat.messages': 'Mensajes',\n 'chat.details': 'Detalles',\n 'chat.resizePanel': 'Redimensionar el panel de {panel}',\n 'chat.scrollToBottom': 'Ir al último mensaje',\n 'chat.suggestions': 'Sugerencias',\n 'chat.sources': 'Fuentes',\n 'chat.source': 'Fuente {index}: {title}',\n 'chat.you': 'Tú',\n 'chat.assistant': 'Asistente',\n 'chat.system': 'Sistema',\n 'chat.tool': 'Herramienta',\n 'chat.participant': 'Participante',\n 'chat.responding': '{author} está respondiendo…',\n 'chat.actionsFor': 'Acciones del mensaje de {name}',\n 'chat.copyMessage': 'Copiar mensaje',\n 'chat.copyCode': 'Copiar código',\n 'chat.copiedCode': 'Código copiado',\n 'chat.goodResponse': 'Buena respuesta',\n 'chat.badResponse': 'Mala respuesta',\n 'chat.taskDone': 'Hecho',\n 'chat.taskNotDone': 'Pendiente',\n 'chat.image': 'Imagen: {alt}',\n 'chat.untitled': 'sin título',\n 'chat.openSource': 'Abrir fuente',\n 'toolCall.calling': 'Llamando a',\n 'toolCall.called': 'Se llamó a',\n 'toolCall.failed': 'Falló la llamada a',\n 'toolCall.arguments': 'Argumentos',\n 'toolCall.result': 'Resultado',\n 'toolCall.waiting': 'Esperando el resultado…',\n 'chat.surfaceExampleTitle': 'Revisa tus datos',\n 'chat.surfaceExampleName': 'Nombre',\n 'chat.surfaceExampleSubmit': 'Enviar',\n 'chat.surfaceExampleChoice': 'Idioma',\n 'chat.surfaceExampleEnglish': 'Inglés',\n 'chat.surfaceExampleSpanish': 'Español',\n 'chat.surfaceExampleNotify': 'Enviar novedades',\n 'chat.surfaceExampleBadge': 'Borrador',\n 'chat.surfaceExampleNotice': 'Comprueba los datos antes de enviarlos.',\n 'chat.surfaceExampleStatus': 'Enviado para {name}',\n 'chat.surfaceExamplePatch': 'Actualizar nombre',\n 'chat.surfaceExampleRemove': 'Eliminar contenido',\n 'chat.surfaceExampleReset': 'Restablecer',\n 'chat.surfaceExampleUnsupported': 'Mostrar contenido no compatible',\n 'chat.surfaceExampleRejected': 'Se rechazó el contenido no compatible.',\n 'chat.surfaceExampleLink': 'Leer la documentación',\n 'chat.surfaceUnsupported': 'Este contenido no se puede mostrar',\n 'chat.surfaceAgentContent': 'Contenido del agente',\n 'chat.typing': '{author} está escribiendo',\n 'chat.feedback': 'Valoración de la respuesta',\n 'chat.feedbackTitle': '¿Qué ha fallado?',\n 'chat.feedbackReason': 'Motivo',\n 'chat.feedbackComment': 'Comentario (opcional)',\n 'chat.feedbackPlaceholder': 'Cuéntanos más…',\n 'chat.feedbackSubmit': 'Enviar valoración',\n 'chat.feedbackThanks': 'Gracias por tu valoración',\n 'chat.feedbackCleared': 'Valoración eliminada',\n 'chat.reasonInaccurate': 'Incorrecta',\n 'chat.reasonUnhelpful': 'No es útil',\n 'chat.reasonIncomplete': 'Incompleta',\n 'chat.reasonUnsafe': 'Dañina o insegura',\n 'chat.reasonOther': 'Otro',\n 'chat.regenerate': 'Regenerar',\n 'chat.uploading': 'Subiendo {name}',\n 'chat.uploadFailed': 'Error al subir',\n 'chat.retryUpload': 'Reintentar la subida de {name}',\n 'chat.dropFiles': 'Suelta archivos para adjuntarlos',\n 'chat.fileTooLarge': '{name} supera {max}',\n 'chat.fileTypeNotAllowed': '{name} no es un tipo de archivo permitido',\n 'chat.tooManyFiles': 'Puedes adjuntar hasta {max} archivos',\n 'chat.model': 'Modelo',\n 'chat.selectModel': 'Selecciona un modelo',\n 'chat.capabilityVision': 'Visión',\n 'chat.capabilityTools': 'Herramientas',\n 'chat.capabilityReasoning': 'Razonamiento',\n 'chat.capabilityFiles': 'Archivos',\n 'chat.capabilityWeb': 'Búsqueda web',\n 'chat.capabilityAudio': 'Audio',\n 'chat.contextWindow': 'Contexto de {size}',\n 'chat.unavailable': 'No disponible',\n // Credential disclosure dialog\n 'credentialDisclosure.title': 'Secreto de la credencial',\n 'credentialDisclosure.description': 'Copia este valor y guárdalo de forma segura.',\n 'credentialDisclosure.credentialId': 'ID de credencial',\n 'credentialDisclosure.expiry': 'Caduca',\n 'credentialDisclosure.secret': 'Secreto',\n 'credentialDisclosure.show': 'Mostrar secreto',\n 'credentialDisclosure.hide': 'Ocultar secreto',\n 'credentialDisclosure.copy': 'Copiar secreto',\n 'credentialDisclosure.copied': 'Copiado',\n 'credentialDisclosure.success': 'Secreto copiado al portapapeles',\n 'credentialDisclosure.failure': 'No se pudo copiar. Selecciona y copia el valor manualmente.',\n 'credentialDisclosure.close': 'Cerrar',\n 'credentialDisclosure.warningTitle': 'Guarda este nuevo secreto',\n 'credentialDisclosure.warningText':\n 'Este valor reemplaza el secreto anterior. Cópialo ahora; se muestra una sola vez.',\n // Batch A: CopyButton, SplitButton, SecretField, KeyValueEditor, DiffViewer\n 'splitButton.more': 'Más opciones',\n 'secret.show': 'Mostrar secreto',\n 'secret.hide': 'Ocultar secreto',\n 'secret.copy': 'Copiar secreto',\n 'secret.copied': 'Secreto copiado al portapapeles',\n 'secret.hidden': 'Valor oculto',\n 'secret.rotate': 'Rotar',\n 'secret.rotateTitle': '¿Rotar este secreto?',\n 'secret.rotateDescription':\n 'Se genera un valor nuevo y el actual deja de funcionar. Lo que aún lo use fallará hasta que se actualice.',\n 'secret.rotateConfirm': 'Rotar secreto',\n 'secret.rotated': 'Secreto rotado',\n 'secret.rotateFailed': 'No se pudo rotar',\n 'secret.created': 'Creado',\n 'secret.lastUsed': 'Último uso',\n 'secret.neverUsed': 'Nunca usado',\n 'kv.key': 'Clave',\n 'kv.value': 'Valor',\n 'kv.keyRow': 'Clave, fila {row}',\n 'kv.valueRow': 'Valor, fila {row}',\n 'kv.secretRow': 'Valor secreto, fila {row}',\n 'kv.removeRow': 'Quitar fila {row}',\n 'kv.rowRemoved': 'Fila quitada',\n 'kv.add': 'Añadir variable',\n 'kv.empty': 'Aún no hay variables.',\n 'kv.paste': 'Pegar .env',\n 'kv.pasteLabel': 'Contenido .env',\n 'kv.pasteHint':\n 'Una CLAVE=valor por línea. Las líneas que empiezan por # se ignoran; las claves existentes se actualizan.',\n 'kv.import': 'Añadir variables',\n 'kv.imported': '{count, plural, one {# variable importada} other {# variables importadas}}',\n 'kv.copyEnv': 'Copiar como .env',\n 'kv.errDuplicate': 'Clave duplicada',\n 'kv.errPattern': 'Usa letras, dígitos y guiones bajos, sin empezar por un dígito',\n 'kv.errKeyRequired': 'La clave es obligatoria',\n 'kv.errValueRequired': 'El valor es obligatorio',\n 'diff.label': 'Diferencias',\n 'diff.view': 'Vista de diferencias',\n 'diff.split': 'Dividida',\n 'diff.unified': 'Unificada',\n 'diff.addedLine': 'Línea añadida {line}:',\n 'diff.removedLine': 'Línea eliminada {line}:',\n 'diff.additions': '{count, plural, one {# adición} other {# adiciones}}',\n 'diff.deletions': '{count, plural, one {# eliminación} other {# eliminaciones}}',\n 'diff.expand': '{count, plural, one {Mostrar # línea} other {Mostrar # líneas}}',\n 'diff.noChanges': 'Sin cambios',\n 'diff.old': 'Anterior',\n 'diff.new': 'Nuevo',\n // Batch C: async combobox, terminal\n 'combobox.create': 'Crear «{label}»',\n 'combobox.loadFailed': 'No se pudieron cargar las opciones.',\n 'terminal.label': 'Salida de terminal',\n 'terminal.toolbar': 'Acciones de terminal',\n 'terminal.jumpToLatest': 'Ir a lo último',\n 'terminal.newLines': '{count, plural, one {# línea nueva} other {# líneas nuevas}}',\n 'terminal.wrap': 'Ajustar líneas',\n 'terminal.copyAll': 'Copiar todo',\n 'terminal.search': 'Buscar en la salida',\n 'terminal.matches': '{current} de {total}',\n 'terminal.noMatches': 'Sin coincidencias',\n 'terminal.nextMatch': 'Coincidencia siguiente',\n 'terminal.previousMatch': 'Coincidencia anterior',\n // DateField and DateRangeField\n 'dateField.label': 'Fecha',\n 'dateField.year': 'Año',\n 'dateField.month': 'Mes',\n 'dateField.day': 'Día',\n 'dateField.start': 'Fecha de inicio',\n 'dateField.end': 'Fecha de fin',\n 'dateField.segmentInRange': '{range}, {segment}',\n 'timePicker.label': 'Hora',\n 'timePicker.hours': 'Horas',\n 'timePicker.minutes': 'Minutos',\n 'timePicker.seconds': 'Segundos',\n 'timePicker.period': 'a. m./p. m.',\n 'timePicker.empty': 'Vacío',\n 'datePicker.time': 'Hora',\n 'datePicker.done': 'Listo',\n 'datePicker.dateTimePlaceholder': 'Elige fecha y hora',\n 'timeRange.placeholder': 'Elige un intervalo',\n 'timeRange.choose': 'Elegir intervalo de tiempo',\n 'timeRange.presets': 'Intervalos rápidos',\n 'timeRange.lastMinutes': '{count, plural, one {Último minuto} other {Últimos # minutos}}',\n 'timeRange.lastHours': '{count, plural, one {Última hora} other {Últimas # horas}}',\n 'timeRange.lastDays': '{count, plural, one {Último día} other {Últimos # días}}',\n 'timeRange.custom': 'Intervalo personalizado',\n 'timeRange.mode': 'Tipo de intervalo',\n 'timeRange.relative': 'Relativo',\n 'timeRange.absolute': 'Absoluto',\n 'timeRange.last': 'Últimos',\n 'timeRange.amount': 'Cantidad',\n 'timeRange.unit': 'Unidad',\n 'timeRange.minutes': 'Minutos',\n 'timeRange.hours': 'Horas',\n 'timeRange.days': 'Días',\n 'timeRange.start': 'Inicio',\n 'timeRange.end': 'Fin',\n 'timeRange.startTime': 'Hora de inicio',\n 'timeRange.endTime': 'Hora de fin',\n 'timeRange.apply': 'Aplicar',\n 'timeRange.endBeforeStart': 'El fin debe ser posterior al inicio.',\n 'timeRange.incomplete': 'Elige un inicio y un fin.',\n 'permissionMatrix.label': 'Permisos',\n 'permissionMatrix.permission': 'Permiso',\n 'permissionMatrix.allowed': 'Permitido',\n 'permissionMatrix.denied': 'Denegado',\n 'permissionMatrix.inherited': 'Heredado',\n 'permissionMatrix.inheritedAs': 'Heredado ({state})',\n 'permissionMatrix.cell': '{permission}, {role}: {state}',\n 'permissionMatrix.readOnly': 'Solo lectura',\n 'permissionMatrix.readOnlyRole': 'Los permisos de {role} no se pueden cambiar.',\n 'queryBuilder.label': 'Consulta',\n 'queryBuilder.group': 'Grupo de condiciones',\n 'queryBuilder.combinator': 'Combinar condiciones con',\n 'queryBuilder.and': 'Y',\n 'queryBuilder.or': 'O',\n 'queryBuilder.condition': 'Condición {index}',\n 'queryBuilder.field': 'Campo',\n 'queryBuilder.operator': 'Operador',\n 'queryBuilder.value': 'Valor',\n 'queryBuilder.valueFrom': 'Desde',\n 'queryBuilder.valueTo': 'Hasta',\n 'queryBuilder.rangeInverted': '«Desde» no puede ser posterior a «Hasta».',\n 'queryBuilder.addCondition': 'Añadir condición',\n 'queryBuilder.addGroup': 'Añadir grupo',\n 'queryBuilder.removeCondition': 'Quitar condición {index}',\n 'queryBuilder.removeGroup': 'Quitar grupo',\n 'queryBuilder.empty': 'Sin condiciones: coinciden todos los registros.',\n 'queryBuilder.true': 'verdadero',\n 'queryBuilder.false': 'falso',\n 'queryBuilder.between': '{from} y {to}',\n 'queryBuilder.op.eq': 'es',\n 'queryBuilder.op.neq': 'no es',\n 'queryBuilder.op.contains': 'contiene',\n 'queryBuilder.op.notContains': 'no contiene',\n 'queryBuilder.op.startsWith': 'empieza por',\n 'queryBuilder.op.endsWith': 'termina en',\n 'queryBuilder.op.gt': 'mayor que',\n 'queryBuilder.op.gte': 'al menos',\n 'queryBuilder.op.lt': 'menor que',\n 'queryBuilder.op.lte': 'como máximo',\n 'queryBuilder.op.between': 'está entre',\n 'queryBuilder.op.in': 'es alguno de',\n 'queryBuilder.op.notIn': 'no es ninguno de',\n 'queryBuilder.op.before': 'es anterior a',\n 'queryBuilder.op.after': 'es posterior a',\n 'queryBuilder.op.isEmpty': 'está vacío',\n 'queryBuilder.op.isNotEmpty': 'no está vacío',\n 'queryBuilder.op.isTrue': 'es verdadero',\n 'queryBuilder.op.isFalse': 'es falso',\n 'scheduleInput.label': 'Programación',\n 'scheduleInput.frequency': 'Frecuencia',\n 'scheduleInput.hourly': 'Cada hora',\n 'scheduleInput.daily': 'Diario',\n 'scheduleInput.weekly': 'Semanal',\n 'scheduleInput.monthly': 'Mensual',\n 'scheduleInput.custom': 'Personalizado',\n 'scheduleInput.atMinute': 'En el minuto',\n 'scheduleInput.atTime': 'A las',\n 'scheduleInput.onDays': 'Los días',\n 'scheduleInput.dayOfMonth': 'Día del mes',\n 'scheduleInput.expression': 'Expresión cron',\n 'scheduleInput.expressionHint': 'minuto hora día-del-mes mes día-de-la-semana',\n 'scheduleInput.nextRuns': 'Próximas ejecuciones ({timeZone})',\n 'scheduleInput.noRuns': 'Sin ejecuciones próximas.',\n 'scheduleInput.localTime': 'hora local',\n 'cron.error.empty': 'Escribe una expresión cron.',\n 'cron.error.fieldCount': 'Se esperaban 5 campos (minuto hora día mes día-semana); hay {count}.',\n 'cron.error.invalid': 'Valor de {field} no válido: «{value}».',\n 'cron.error.range': 'El valor de {field} «{value}» está fuera de {min}–{max}.',\n 'cron.error.step': 'Paso «{value}» no válido en {field}.',\n 'cron.error.macro': 'Macro «{value}» no admitida.',\n 'cron.field.minute': 'minuto',\n 'cron.field.hour': 'hora',\n 'cron.field.dayOfMonth': 'día del mes',\n 'cron.field.month': 'mes',\n 'cron.field.dayOfWeek': 'día de la semana',\n 'cron.everyMinute': 'Cada minuto',\n 'cron.everyNMinutes': 'Cada {count, plural, one {minuto} other {# minutos}}',\n 'cron.everyHour': 'Cada hora',\n 'cron.everyHourAt': 'Cada hora en {count, plural, one {el minuto} other {los minutos}} {minutes}',\n 'cron.everyNHours': 'Cada {count, plural, one {hora} other {# horas}}',\n 'cron.everyNHoursAt': 'Cada {count, plural, one {hora} other {# horas}} en el minuto {minute}',\n 'cron.minutesPast': 'En {count, plural, one {el minuto} other {los minutos}} {minutes} de cada hora',\n 'cron.at': 'A las {times}',\n 'cron.dailyAt': 'Todos los días a las {times}',\n 'cron.weekdaysAt': 'De lunes a viernes a las {times}',\n 'cron.weeklyAt': 'Cada {days} a las {times}',\n 'cron.monthlyAt': 'Cada mes, {count, plural, one {el día} other {los días}} {days}, a las {times}',\n 'cron.betweenHours': 'entre las {start} y las {end}',\n 'cron.duringHours': 'durante {count, plural, one {la hora} other {las horas}} {hours}',\n 'cron.onWeekdays': 'de lunes a viernes',\n 'cron.onDays': 'los {days}',\n 'cron.onDaysOfMonth': '{count, plural, one {el día} other {los días}} {days} del mes',\n 'cron.or': '{a} o {b}',\n 'cron.inMonths': 'en {months}',\n 'cron.join': '{base}, {part}',\n 'formSection.title': 'General',\n 'formSection.description': 'Datos básicos que ven todos los que tienen acceso a este proyecto.',\n 'settingsRow.label': 'Notificaciones de despliegue',\n 'settingsRow.description':\n 'Envía un correo a los propietarios del proyecto cuando un despliegue falle o se revierta.',\n 'validationSummary.title': 'Hay {count, plural, one {1 problema} other {{count} problemas}} en este formulario',\n 'ssoButtons.label': 'Inicio de sesión único',\n 'authValidation.emailInvalid': 'Introduce una dirección de correo válida.',\n 'authValidation.identifierInvalid': 'Introduce un identificador válido.',\n 'authValidation.fieldRequired': 'Introduce {label}.',\n 'authValidation.fallbackError': 'Algo salió mal. Inténtalo de nuevo.',\n 'signIn.eyebrow': 'Acceso seguro',\n 'signIn.title': 'Inicia sesión en tu espacio de trabajo',\n 'signIn.description': 'Usa tu correo de trabajo para continuar.',\n 'signIn.formLabel': 'Iniciar sesión',\n 'signIn.identifierLabel': 'Correo electrónico',\n 'signIn.identifierPlaceholder': 'nombre@empresa.com',\n 'signIn.password': 'Contraseña',\n 'signIn.forgotPassword': '¿Has olvidado tu contraseña?',\n 'signIn.passwordRequired': 'Introduce tu contraseña.',\n 'signIn.remember': 'Mantener la sesión iniciada',\n 'signIn.submit': 'Iniciar sesión',\n 'signIn.divider': 'O continúa con',\n 'signIn.signUpPrompt': '¿Eres nuevo aquí?',\n 'signIn.signUp': 'Crear una cuenta',\n 'signIn.fallbackError': 'No se pudo iniciar sesión. Inténtalo de nuevo.',\n 'dangerZone.title': 'Zona de peligro',\n 'dangerZone.description': 'Estas acciones afectan a todo el proyecto y a cada miembro que tiene acceso.',\n 'dangerZone.confirmationTitle': '¿{title}?',\n 'dangerZone.confirmPrompt': 'Escribe {text} para confirmar',\n 'dangerZone.cancel': 'Cancelar',\n 'dangerZone.fallbackError': 'Algo salió mal. Inténtalo de nuevo.',\n 'credentialDisclosure.copiedFor': '{label}: {copied}',\n 'createApiKey.title': 'Crear clave de API',\n 'createApiKey.description':\n 'Las claves actúan en nombre de este espacio de trabajo. Concede solo los permisos que necesite la integración.',\n 'createApiKey.name': 'Nombre',\n 'createApiKey.namePlaceholder': 'despliegues-ci',\n 'createApiKey.nameRequired': 'Asigna un nombre a la clave.',\n 'createApiKey.scopes': 'Permisos',\n 'createApiKey.scopesRequired': 'Selecciona al menos un permiso.',\n 'createApiKey.expiration': 'Caducidad',\n 'createApiKey.errorTitle': 'No se ha creado la clave',\n 'createApiKey.fallbackError': 'No se pudo crear la clave.',\n 'createApiKey.cancel': 'Cancelar',\n 'createApiKey.submit': 'Crear clave',\n 'createApiKey.successTitle': 'Clave de API creada',\n 'createApiKey.successDescription': 'Guárdala en tu gestor de secretos. Úsala como token de portador.',\n 'createApiKey.warningTitle': 'Copia esta clave ahora',\n 'createApiKey.warningDescription': 'Por tu seguridad, solo se muestra una vez. Si la pierdes, revócala y crea otra.',\n 'createApiKey.secretLabel': 'Nueva clave de API',\n 'createApiKey.done': 'Listo',\n 'inviteMembers.title': 'Invitar miembros',\n 'inviteMembers.description': 'Las invitaciones caducan a los 7 días. Separa las direcciones con comas o Intro.',\n 'inviteMembers.emails': 'Direcciones de correo',\n 'inviteMembers.placeholder': 'nombre@empresa.com',\n 'inviteMembers.listLabel': 'Direcciones invitadas',\n 'inviteMembers.role': 'Rol',\n 'inviteMembers.message': 'Mensaje (opcional)',\n 'inviteMembers.messagePlaceholder': 'Únete a nuestro proyecto billing-dashboard.',\n 'inviteMembers.emailRequired': 'Añade al menos una dirección de correo.',\n 'inviteMembers.emailInvalid': '{email} no es una dirección de correo válida',\n 'inviteMembers.fixInvalid':\n 'Corrige {count} {count, plural, one {dirección no válida} other {direcciones no válidas}}.',\n 'inviteMembers.errorTitle': 'Invitaciones no enviadas',\n 'inviteMembers.fallbackError': 'No se pudieron enviar las invitaciones.',\n 'inviteMembers.cancel': 'Cancelar',\n 'inviteMembers.submit': 'Enviar invitación',\n 'inviteMembers.submitMany': 'Enviar {count} invitaciones',\n 'forgotPassword.formLabel': 'Solicitud de restablecimiento de contraseña',\n 'forgotPassword.eyebrow': 'Recuperación de cuenta',\n 'forgotPassword.title': '¿Has olvidado tu contraseña?',\n 'forgotPassword.description':\n 'Introduce el correo con el que inicias sesión y te enviaremos un enlace de restablecimiento.',\n 'forgotPassword.sentTitle': 'Revisa tu correo',\n 'forgotPassword.sentDescription':\n 'Si existe una cuenta para {email}, recibirás un enlace para restablecer tu contraseña. Caduca en 1 hora.',\n 'forgotPassword.addressFallback': 'esa dirección',\n 'forgotPassword.sentStatus': 'Enlace de restablecimiento enviado.',\n 'forgotPassword.fallbackError': 'No se pudo enviar el enlace de restablecimiento.',\n 'forgotPassword.backToSignIn': 'Volver al inicio de sesión',\n 'forgotPassword.resend': 'Reenviar enlace',\n 'forgotPassword.changeEmail': 'Usar otro correo',\n 'forgotPassword.identifierLabel': 'Correo electrónico',\n 'forgotPassword.identifierPlaceholder': 'nombre@empresa.com',\n 'forgotPassword.submit': 'Enviar enlace de restablecimiento',\n 'mfaChallenge.eyebrow': 'Verificación en dos pasos',\n 'mfaChallenge.title': 'Introduce tu código de verificación',\n 'mfaChallenge.backupTitle': 'Usar un código de respaldo',\n 'mfaChallenge.backupDescription':\n 'Introduce uno de los códigos de respaldo que guardaste al activar la verificación en dos pasos. Cada código funciona una vez.',\n 'mfaChallenge.destinationDescription': 'Hemos enviado un código de {length} dígitos a {destination}.',\n 'mfaChallenge.description': 'Abre tu aplicación de autenticación e introduce el código de {length} dígitos.',\n 'mfaChallenge.formLabel': 'Verifica tu identidad',\n 'mfaChallenge.codeLabel': 'Código de verificación',\n 'mfaChallenge.codeRequired': 'Introduce los {length} dígitos.',\n 'mfaChallenge.backupLabel': 'Código de respaldo',\n 'mfaChallenge.backupPlaceholder': 'xxxx-xxxx',\n 'mfaChallenge.backupHint': 'Los códigos de respaldo tienen 8 caracteres, con o sin guion.',\n 'mfaChallenge.backupRequired': 'Introduce un código de respaldo.',\n 'mfaChallenge.submit': 'Verificar',\n 'mfaChallenge.useCode': 'Usar un código de verificación',\n 'mfaChallenge.resendIn': 'Reenviar código en {remaining}s',\n 'mfaChallenge.resend': 'Reenviar código',\n 'mfaChallenge.resent': 'Se ha enviado un nuevo código.',\n 'mfaChallenge.backToSignIn': 'Volver al inicio de sesión',\n 'mfaChallenge.fallbackError': 'Ese código no ha funcionado. Inténtalo de nuevo.',\n 'resetPassword.eyebrow': 'Recuperación de cuenta',\n 'resetPassword.title': 'Establece una contraseña nueva',\n 'resetPassword.description': 'Usa al menos {minimum} caracteres. Evita contraseñas que uses en otros sitios.',\n 'resetPassword.newPassword': 'Nueva contraseña',\n 'resetPassword.confirmPassword': 'Confirmar contraseña',\n 'resetPassword.passwordTooShort': 'Usa al menos {minimum} caracteres.',\n 'resetPassword.passwordMismatch': 'Las contraseñas no coinciden.',\n 'resetPassword.submit': 'Actualizar contraseña',\n 'resetPassword.successTitle': 'Contraseña actualizada',\n 'resetPassword.successDescription':\n 'Ya puedes iniciar sesión con tu nueva contraseña. Se han cerrado las demás sesiones.',\n 'resetPassword.successStatus': 'Contraseña actualizada.',\n 'resetPassword.continue': 'Continuar al inicio de sesión',\n 'resetPassword.fallbackError': 'No se pudo actualizar tu contraseña.',\n 'signUp.eyebrow': 'Primeros pasos',\n 'signUp.title': 'Crea tu cuenta',\n 'signUp.description': 'Configura un espacio de trabajo para tu equipo en un par de minutos.',\n 'signUp.name': 'Nombre completo',\n 'signUp.namePlaceholder': 'Avery Collins',\n 'signUp.nameRequired': 'Introduce tu nombre.',\n 'signUp.email': 'Correo de trabajo',\n 'signUp.emailPlaceholder': 'nombre@empresa.com',\n 'signUp.password': 'Contraseña',\n 'signUp.passwordTooShort': 'Usa al menos {minimum} caracteres.',\n 'signUp.termsRequired': 'Acepta los términos para continuar.',\n 'signUp.terms': 'Términos',\n 'signUp.privacy': 'Política de privacidad',\n 'signUp.termsConsent': 'Acepto los {terms} y la {privacy}.',\n 'signUp.submit': 'Crear cuenta',\n 'signUp.divider': 'O regístrate con',\n 'signUp.signInPrompt': '¿Ya tienes una cuenta?',\n 'signUp.signIn': 'Iniciar sesión',\n 'signUp.policyLoading': 'Cargando la política de registro…',\n 'signUp.fallbackError': 'No se pudo crear la cuenta.',\n};\n","import { en, type Messages } from './en';\nimport { es } from './es';\n\n/** Built-in catalogs, by language subtag. */\nexport const catalogs = { en, es } satisfies Record<string, Messages>;\nexport type CatalogLocale = keyof typeof catalogs;\n","import { DirectionProvider } from '@base-ui/react/direction-provider';\nimport { createContext, useContext, useEffect, useMemo, type ReactNode } from 'react';\nimport { createFormatters, localeDirection, type I18nFormatters } from './format';\nimport { catalogs } from './messages';\nimport { en, type Messages } from './messages/en';\n\nexport type Direction = 'ltr' | 'rtl';\n\n/** What useI18n() returns: the translator, Intl formatters, the locale and the text direction. */\nexport interface I18n extends I18nFormatters {\n locale: string;\n dir: Direction;\n}\n\nexport interface I18nProviderProps {\n /** BCP 47 locale (\"es\", \"es-MX\", \"ar\"). Picks the built-in catalog by language; unknown → English. */\n locale: string;\n /** Overrides or additions on top of the built-in catalog (e.g. a full catalog for another language). */\n messages?: Partial<Messages>;\n /** Text direction; defaults to the locale's (rtl for Arabic, Hebrew, Persian, Urdu…). */\n dir?: Direction;\n /**\n * Where `dir` and `lang` are applied: `wrapper` (default) renders a `display: contents` div;\n * `document` sets them on `<html>` (also covers portalled overlays); `none` leaves it to you.\n */\n applyTo?: 'wrapper' | 'document' | 'none';\n children?: ReactNode;\n}\n\nconst I18nContext = createContext<I18n | null>(null);\nconst DEFAULT_I18N: I18n = { locale: 'en', dir: 'ltr', ...createFormatters('en', en) };\n\n/** The built-in catalog for a locale's language, falling back to English. */\nexport function builtInMessages(locale: string): Messages {\n const lang = locale.split(/[-_]/)[0]?.toLowerCase() ?? '';\n return (catalogs as Record<string, Messages | undefined>)[lang] ?? en;\n}\n\n/**\n * Locale, messages and direction for every kit component below it. Also sets Base UI's\n * direction, so arrow-key navigation (Tabs, Menu, Slider, Toolbar…) follows RTL.\n */\nexport function I18nProvider({ locale, messages, dir, applyTo = 'wrapper', children }: I18nProviderProps) {\n const direction = dir ?? localeDirection(locale);\n const value = useMemo<I18n>(() => {\n const merged: Messages = { ...builtInMessages(locale), ...messages };\n return { locale, dir: direction, ...createFormatters(locale, merged) };\n }, [locale, messages, direction]);\n\n useEffect(() => {\n if (applyTo !== 'document') return;\n const html = document.documentElement;\n const prev = { dir: html.getAttribute('dir'), lang: html.getAttribute('lang') };\n html.setAttribute('dir', direction);\n html.setAttribute('lang', locale);\n return () => {\n if (prev.dir === null) html.removeAttribute('dir');\n else html.setAttribute('dir', prev.dir);\n if (prev.lang === null) html.removeAttribute('lang');\n else html.setAttribute('lang', prev.lang);\n };\n }, [applyTo, direction, locale]);\n\n const content = <DirectionProvider direction={direction}>{children}</DirectionProvider>;\n return (\n <I18nContext.Provider value={value}>\n {applyTo === 'wrapper' ? (\n <div dir={direction} lang={locale} className=\"contents\">\n {content}\n </div>\n ) : (\n content\n )}\n </I18nContext.Provider>\n );\n}\n\n/** Translator, Intl formatters, locale and direction. Outside an I18nProvider: English, LTR. */\nexport function useI18n(): I18n {\n return useContext(I18nContext) ?? DEFAULT_I18N;\n}\n\n/** The provider's value, or null outside one (lets components keep runtime-locale defaults). */\nexport function useOptionalI18n(): I18n | null {\n return useContext(I18nContext);\n}\n\n/**\n * `dir` for portalled overlays: rendered outside the provider's wrapper, they carry the\n * direction themselves. Undefined outside a provider, so the document's direction applies.\n */\nexport function usePortalDir(): Direction | undefined {\n return useContext(I18nContext)?.dir;\n}\n","import { createContext, useContext } from 'react';\n\n/** Control density. `comfortable` is the default; `compact` suits data-heavy consoles. */\nexport type Density = 'compact' | 'comfortable';\n\nexport const DensityContext = createContext<Density | null>(null);\n\n/** The nearest DensityProvider's density, or `comfortable` outside any provider. */\nexport function useDensity(): Density {\n return useContext(DensityContext) ?? 'comfortable';\n}\n\n/** The nearest provider's density, or `undefined` outside any provider (for components with their own fallback). */\nexport function useDensityContext(): Density | undefined {\n return useContext(DensityContext) ?? undefined;\n}\n","/** Mirrors a directional glyph (chevron, arrow) in right-to-left text. */\nexport const RTL_FLIP = 'rtl:-scale-x-100';\n\nconst DIRECTIONAL =\n /^(?:Chevrons?(?:Left|Right)|Arrow(?:Left|Right)\\w*|Move(?:Left|Right)|Panel(?:Left|Right)\\w*|Undo\\d?|Redo\\d?|Corner\\w+(?:Left|Right)|Indent\\w*|Outdent\\w*)$/;\n\n/**\n * True for lucide icons that point along the inline axis (ChevronLeft, ArrowRight,\n * PanelLeftClose…), which mirror under RTL. Detected from the icon's displayName.\n */\nexport function isDirectionalIcon(icon: unknown): boolean {\n const name = (icon as { displayName?: unknown } | null | undefined)?.displayName;\n return typeof name === 'string' && DIRECTIONAL.test(name);\n}\n\n/** `RTL_FLIP` for a directional icon, else undefined. */\nexport const rtlIconClass = (icon: unknown) => (isDirectionalIcon(icon) ? RTL_FLIP : undefined);\n","import type { SVGAttributes } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport interface SpinnerProps extends SVGAttributes<SVGSVGElement> {\n size?: number;\n /** Accessible label. Without it the spinner is decorative (aria-hidden). */\n label?: string;\n}\n\n/** Indeterminate loading indicator; inherits currentColor. */\nexport function Spinner({ size = 16, label, className, ...props }: SpinnerProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n className={cn('block shrink-0 animate-spin motion-reduce:animate-[spin_1.6s_linear_infinite]', className)}\n role={label ? 'status' : undefined}\n aria-label={label}\n aria-hidden={label ? undefined : true}\n {...props}\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.6\" strokeOpacity=\"0.25\" />\n <path d=\"M21 12a9 9 0 0 0-9-9\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.6\" strokeLinecap=\"round\" />\n </svg>\n );\n}\n","import { tv, type VariantProps } from '../../utils/tv';\n\nexport const buttonVariants = tv({\n base: [\n 'inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none',\n 'focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n ],\n variants: {\n variant: {\n primary: 'bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n secondary: 'border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70',\n soft: 'bg-primary/14 text-primary-chip-text hover:bg-primary/20',\n ghost: 'text-muted-foreground hover:bg-secondary/70 hover:text-foreground',\n destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n },\n size: {\n /** Follows `data-density` (comfortable = md). */\n auto: 'h-control gap-1.5 px-control text-[13px] rounded-lg',\n sm: 'h-8 gap-1.5 px-3 text-[12.5px] rounded-md',\n md: 'h-9 gap-1.5 px-3.5 text-[13px] rounded-lg',\n lg: 'h-11 gap-2 px-5 text-[14.5px] rounded-lg',\n },\n iconOnly: { true: 'px-0' },\n },\n compoundVariants: [\n { iconOnly: true, size: 'auto', class: 'size-control' },\n { iconOnly: true, size: 'sm', class: 'size-8' },\n { iconOnly: true, size: 'md', class: 'size-9' },\n { iconOnly: true, size: 'lg', class: 'size-11' },\n ],\n defaultVariants: { variant: 'primary', size: 'auto', iconOnly: false },\n});\n\nexport type ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\n/** Icon size (px) per button size. */\nexport const BUTTON_ICON_SIZE = { sm: 14, md: 15, lg: 17 } as const;\n\n/** Icon size for a button size, resolving `auto` through the density. */\nexport function buttonIconSize(size: 'auto' | 'sm' | 'md' | 'lg', density: 'compact' | 'comfortable'): number {\n return BUTTON_ICON_SIZE[size === 'auto' ? (density === 'compact' ? 'sm' : 'md') : size];\n}\n","import { Button as BaseButton } from '@base-ui/react/button';\nimport type { ComponentType, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport { rtlIconClass } from '../../utils/rtl';\nimport { Spinner } from '../Spinner/Spinner';\nimport { useDensity } from '../../density/density-context';\nimport { buttonIconSize, buttonVariants, type ButtonVariantProps } from './button.variants';\n\ntype IconComponent = ComponentType<{ size?: number; 'aria-hidden'?: boolean; className?: string }>;\n\nexport interface ButtonProps extends Omit<BaseButton.Props, 'className'>, ButtonVariantProps {\n className?: string;\n ref?: Ref<HTMLButtonElement>;\n /** Leading icon (a lucide icon component). Directional ones (ChevronLeft, ArrowRight…) mirror under RTL. */\n icon?: IconComponent;\n /** Trailing icon. */\n trailingIcon?: IconComponent;\n /** Shows a spinner, disables the button and sets aria-busy. */\n loading?: boolean;\n children?: ReactNode;\n}\n\n/** Primary action control. Renders a native <button> unless `render` swaps the element. */\nexport function Button({\n variant,\n size = 'auto',\n iconOnly,\n icon: LeadingIcon,\n trailingIcon: TrailingIcon,\n loading = false,\n disabled,\n className,\n children,\n type = 'button',\n ...props\n}: ButtonProps) {\n const px = buttonIconSize(size, useDensity());\n return (\n <BaseButton\n type={type}\n disabled={disabled || loading}\n focusableWhenDisabled={loading}\n aria-busy={loading || undefined}\n className={cn(buttonVariants({ variant, size, iconOnly }), className)}\n {...props}\n >\n {loading ? (\n <Spinner size={px} />\n ) : (\n LeadingIcon && <LeadingIcon size={px} aria-hidden className={rtlIconClass(LeadingIcon)} />\n )}\n {children}\n {!loading && TrailingIcon && <TrailingIcon size={px} aria-hidden className={rtlIconClass(TrailingIcon)} />}\n </BaseButton>\n );\n}\n\nexport interface IconButtonProps extends Omit<ButtonProps, 'icon' | 'trailingIcon' | 'children' | 'iconOnly'> {\n icon: IconComponent;\n /** Required accessible name (also used as the tooltip text by callers). */\n label: string;\n}\n\n/** Square, icon-only button. `label` becomes its accessible name. */\nexport function IconButton({\n icon: IconCmp,\n label,\n size = 'auto',\n variant = 'ghost',\n loading,\n className,\n ...props\n}: IconButtonProps) {\n const px = buttonIconSize(size, useDensity());\n return (\n <Button\n aria-label={label}\n size={size}\n variant={variant}\n iconOnly\n loading={loading}\n className={className}\n {...props}\n >\n {!loading && <IconCmp size={px} aria-hidden className={rtlIconClass(IconCmp)} />}\n </Button>\n );\n}\n","import { tv, type VariantProps } from '../../utils/tv';\n\n/** The announcer region is screen-reader only; it never takes space or colour. */\nexport const liveAnnouncerVariants = tv({\n base: 'sr-only',\n});\n\nexport type LiveAnnouncerVariantProps = VariantProps<typeof liveAnnouncerVariants>;\n","import { createContext, useCallback, useContext, useState, type ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { liveAnnouncerVariants } from './live-announcer.variants';\n\nexport type AnnouncePoliteness = 'polite' | 'assertive';\n/** Sends a message to the nearest LiveAnnouncer region. */\nexport type Announce = (message: string, politeness?: AnnouncePoliteness) => void;\n\nconst AnnounceContext = createContext<Announce | null>(null);\nconst noop: Announce = () => {};\n\nexport interface LiveAnnouncerProps {\n children?: ReactNode;\n /** Classes for the (screen-reader only) region. */\n className?: string;\n}\n\n/**\n * Screen-reader announcements for interactions that have no visible text change (drag and drop,\n * reorder, background saves). Renders polite and assertive `aria-live` regions and gives its\n * subtree `useAnnounce()`. Repeating the same message re-announces it.\n */\nexport function LiveAnnouncer({ children, className }: LiveAnnouncerProps) {\n const [polite, setPolite] = useState('');\n const [assertive, setAssertive] = useState('');\n const announce = useCallback<Announce>((message, politeness = 'polite') => {\n // A trailing no-break space makes an identical message a DOM change, so it is read again.\n const next = (prev: string) => (prev === message ? `${message}\\u00A0` : message);\n if (politeness === 'assertive') setAssertive(next);\n else setPolite(next);\n }, []);\n const region = cn(liveAnnouncerVariants(), className);\n return (\n <AnnounceContext.Provider value={announce}>\n {children}\n <div role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" className={region} data-live-announcer=\"polite\">\n {polite}\n </div>\n <div aria-live=\"assertive\" aria-atomic=\"true\" className={region} data-live-announcer=\"assertive\">\n {assertive}\n </div>\n </AnnounceContext.Provider>\n );\n}\n\n/**\n * The `announce(message, politeness?)` function of the nearest LiveAnnouncer. Outside one it is\n * a no-op, so components can call it unconditionally.\n */\nexport function useAnnounce(): Announce {\n return useContext(AnnounceContext) ?? noop;\n}\n\n/** True when a LiveAnnouncer is already above this component (so it need not render its own). */\nexport function useHasLiveAnnouncer(): boolean {\n return useContext(AnnounceContext) !== null;\n}\n","import { tv, type VariantProps } from '../../utils/tv';\n\nexport const fieldVariants = tv({\n slots: {\n root: 'flex min-w-0 flex-col gap-2 data-disabled:opacity-70',\n label: 'inline-flex items-center gap-0.5 text-[13px] font-medium text-foreground data-disabled:cursor-not-allowed',\n required: 'text-destructive-text',\n description: 'text-[12px] leading-5 text-muted-foreground text-pretty',\n error: 'flex items-start gap-1.5 text-[12px] leading-5 text-destructive-text',\n item: 'flex',\n fieldset: 'm-0 flex min-w-0 flex-col gap-3 border-0 p-0 data-disabled:opacity-70',\n legend: 'p-0 text-[13px] font-semibold text-foreground',\n legendDescription: '-mt-2 text-[13px] leading-6 text-muted-foreground text-pretty',\n },\n});\n\nexport type FieldVariantProps = VariantProps<typeof fieldVariants>;\n","import { Field as BaseField } from '@base-ui/react/field';\nimport { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';\nimport { CircleAlert } from 'lucide-react';\nimport type { HTMLAttributes, ReactNode, Ref } from 'react';\nimport { cn } from '../../utils/cn';\nimport { fieldVariants } from './field.variants';\n\nconst s = fieldVariants();\n\nexport interface FieldProps extends Omit<BaseField.Root.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/**\n * Groups a label, a control, a description and an error. Base UI wires the ids: the label\n * targets the control, and the description and error are linked with aria-describedby.\n * Pass `invalid` to drive the error from outside (e.g. a form library).\n */\nexport function Field({ className, ...props }: FieldProps) {\n return <BaseField.Root className={cn(s.root(), className)} {...props} />;\n}\n\nexport interface FieldLabelProps extends Omit<BaseField.Label.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLLabelElement>;\n /** Shows a required marker after the label text (also set `required` on the control). */\n required?: boolean;\n}\n\n/** Visible label; clicking it focuses the field's control. */\nexport function FieldLabel({ className, required, children, ...props }: FieldLabelProps) {\n return (\n <BaseField.Label className={cn(s.label(), className)} {...props}>\n {children}\n {required && (\n <span aria-hidden className={s.required()}>\n *\n </span>\n )}\n </BaseField.Label>\n );\n}\n\nexport interface FieldDescriptionProps extends Omit<BaseField.Description.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLParagraphElement>;\n}\n\n/** Helper text under the control, announced as part of its description. */\nexport function FieldDescription({ className, ...props }: FieldDescriptionProps) {\n return <BaseField.Description className={cn(s.description(), className)} {...props} />;\n}\n\nexport interface FieldErrorProps extends Omit<BaseField.Error.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLDivElement>;\n /** Hide the leading alert icon. */\n hideIcon?: boolean;\n}\n\n/**\n * Validation message. Rendered only while the field is invalid (or when `match` says so)\n * and linked to the control through aria-describedby.\n */\nexport function FieldError({ className, hideIcon, children, ...props }: FieldErrorProps) {\n return (\n <BaseField.Error className={cn(s.error(), className)} {...props}>\n {!hideIcon && <CircleAlert size={13} aria-hidden className=\"mt-[3px] shrink-0\" />}\n <span>{children}</span>\n </BaseField.Error>\n );\n}\n\nexport interface FieldItemProps extends Omit<BaseField.Item.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** Wraps one checkbox or radio inside a group that lives in a Field. */\nexport function FieldItem({ className, ...props }: FieldItemProps) {\n return <BaseField.Item className={cn(s.item(), className)} {...props} />;\n}\n\nexport interface FieldsetProps extends Omit<BaseFieldset.Root.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLFieldSetElement>;\n}\n\n/** Groups related fields (or a checkbox/radio group) under a shared legend. */\nexport function Fieldset({ className, ...props }: FieldsetProps) {\n return <BaseFieldset.Root className={cn(s.fieldset(), className)} {...props} />;\n}\n\nexport interface FieldsetLegendProps extends Omit<BaseFieldset.Legend.Props, 'className'> {\n className?: string;\n ref?: Ref<HTMLDivElement>;\n}\n\n/** The fieldset's accessible name. */\nexport function FieldsetLegend({ className, ...props }: FieldsetLegendProps) {\n return <BaseFieldset.Legend className={cn(s.legend(), className)} {...props} />;\n}\n\n/** Supporting text under a legend. */\nexport function FieldsetDescription({\n className,\n ...props\n}: HTMLAttributes<HTMLParagraphElement> & { children?: ReactNode }) {\n return <p className={cn(s.legendDescription(), className)} {...props} />;\n}\n"],"mappings":"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"}
package/dist/forms.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { N as tv, P as cn, a as FieldLabel, c as FieldsetLegend, d as useAnnounce, f as useHasLiveAnnouncer, h as IconButton, m as Button, n as FieldDescription, o as Fieldset, r as FieldError, s as FieldsetDescription, t as Field, u as LiveAnnouncer, w as useI18n } from "./Field-DPYsdteY.js";
2
+ import { F as cn, P as tv, a as FieldLabel, c as FieldsetLegend, d as useAnnounce, f as useHasLiveAnnouncer, h as IconButton, m as Button, n as FieldDescription, o as Fieldset, r as FieldError, s as FieldsetDescription, t as Field, u as LiveAnnouncer, w as useI18n } from "./Field-fY45gbLU.js";
3
3
  import { createContext, useContext, useId, useLayoutEffect, useRef } from "react";
4
4
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { ArrowDown, ArrowUp, Copy, Plus, Trash2 } from "lucide-react";