@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.
- package/dist/{Field-DPYsdteY.js → Field-fY45gbLU.js} +457 -5
- package/dist/Field-fY45gbLU.js.map +1 -0
- package/dist/forms.js +1 -1
- package/dist/index.d.ts +465 -29
- package/dist/index.js +531 -390
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/Field-DPYsdteY.js.map +0 -1
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { clsx } from "clsx";
|
|
3
3
|
import { extendTailwindMerge } from "tailwind-merge";
|
|
4
4
|
import { createTV } from "tailwind-variants";
|
|
5
|
-
import { DirectionProvider } from "@base-ui/react/direction-provider";
|
|
6
5
|
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
6
|
+
import { DirectionProvider } from "@base-ui/react/direction-provider";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { CircleAlert } from "lucide-react";
|
|
9
9
|
import { Button } from "@base-ui/react/button";
|
|
@@ -59,6 +59,60 @@ function cn(...inputs) {
|
|
|
59
59
|
const tv = createTV({ twMergeConfig: densityMergeConfig });
|
|
60
60
|
//#endregion
|
|
61
61
|
//#region src/i18n/format.ts
|
|
62
|
+
/**
|
|
63
|
+
* Formats a size with localized Intl unit labels, rounding into the next unit when needed.
|
|
64
|
+
* Bytes scale through petabytes, bits through terabits; non-finite values return `—`.
|
|
65
|
+
* A string second argument remains shorthand for the locale.
|
|
66
|
+
* @example formatBytes(1536, 'es') // '1,5 kB'
|
|
67
|
+
* @example formatBytes(26_214_400, { base: 1024 }) // '25 MiB'
|
|
68
|
+
*/
|
|
69
|
+
function formatBytes(value, options = {}) {
|
|
70
|
+
if (!Number.isFinite(value)) return "—";
|
|
71
|
+
const { locale = "en", base = 1e3, unit = "byte", unitDisplay = "short", maximumFractionDigits = 1 } = typeof options === "string" ? { locale: options } : options;
|
|
72
|
+
const scale = unit === "bit" ? 1e3 : base;
|
|
73
|
+
const prefixes = [
|
|
74
|
+
"",
|
|
75
|
+
"kilo",
|
|
76
|
+
"mega",
|
|
77
|
+
"giga",
|
|
78
|
+
"tera",
|
|
79
|
+
"peta"
|
|
80
|
+
];
|
|
81
|
+
const last = unit === "bit" ? 4 : 5;
|
|
82
|
+
let magnitude = Math.abs(value);
|
|
83
|
+
let index = 0;
|
|
84
|
+
while (magnitude >= scale && index < last) {
|
|
85
|
+
magnitude /= scale;
|
|
86
|
+
index++;
|
|
87
|
+
}
|
|
88
|
+
const rounded = new Intl.NumberFormat("en", {
|
|
89
|
+
maximumFractionDigits: index === 0 ? 0 : maximumFractionDigits,
|
|
90
|
+
useGrouping: false
|
|
91
|
+
}).format(magnitude);
|
|
92
|
+
if (Number(rounded) >= scale && index < last) {
|
|
93
|
+
magnitude /= scale;
|
|
94
|
+
index++;
|
|
95
|
+
}
|
|
96
|
+
const signed = value < 0 ? -magnitude : magnitude;
|
|
97
|
+
const numberOptions = { maximumFractionDigits: index === 0 ? 0 : maximumFractionDigits };
|
|
98
|
+
if (unit === "byte" && index === 0 && unitDisplay === "short" || scale === 1024 && index > 0) {
|
|
99
|
+
const symbol = [
|
|
100
|
+
"B",
|
|
101
|
+
"KiB",
|
|
102
|
+
"MiB",
|
|
103
|
+
"GiB",
|
|
104
|
+
"TiB",
|
|
105
|
+
"PiB"
|
|
106
|
+
][index];
|
|
107
|
+
return `${new Intl.NumberFormat(locale, numberOptions).format(signed)} ${symbol}`;
|
|
108
|
+
}
|
|
109
|
+
return new Intl.NumberFormat(locale, {
|
|
110
|
+
...numberOptions,
|
|
111
|
+
style: "unit",
|
|
112
|
+
unit: `${prefixes[index]}${unit}`,
|
|
113
|
+
unitDisplay
|
|
114
|
+
}).format(signed);
|
|
115
|
+
}
|
|
62
116
|
/** Scripts written right to left (language subtag). */
|
|
63
117
|
const RTL_LANGUAGES = /* @__PURE__ */ new Set([
|
|
64
118
|
"ar",
|
|
@@ -165,6 +219,10 @@ function createFormatters(locale, messages) {
|
|
|
165
219
|
return {
|
|
166
220
|
t: (key, vars) => interpolate(messages[key] ?? key, vars, locale),
|
|
167
221
|
formatNumber: (value, options) => new Intl.NumberFormat(locale, options).format(value),
|
|
222
|
+
formatBytes: (value, options) => formatBytes(value, {
|
|
223
|
+
locale,
|
|
224
|
+
...options
|
|
225
|
+
}),
|
|
168
226
|
formatCurrency: (value, currency, options) => new Intl.NumberFormat(locale, {
|
|
169
227
|
style: "currency",
|
|
170
228
|
currency,
|
|
@@ -189,6 +247,64 @@ function createFormatters(locale, messages) {
|
|
|
189
247
|
* Month and weekday names, numbers and dates come from Intl, not from this catalog.
|
|
190
248
|
*/
|
|
191
249
|
const en = {
|
|
250
|
+
"themeScope.title": "Light preview",
|
|
251
|
+
"themeScope.description": "This card and its popup use the light theme.",
|
|
252
|
+
"themeScope.choice": "Preview choice",
|
|
253
|
+
"themeScope.personal": "Personal",
|
|
254
|
+
"themeScope.nested": "A dark region inside a light region.",
|
|
255
|
+
"themeScope.release": "Release forced theme",
|
|
256
|
+
"themeScope.force": "Force light theme",
|
|
257
|
+
"resourceDetail.overview": "Overview",
|
|
258
|
+
"resourceDetail.activity": "Activity",
|
|
259
|
+
"resourceDetail.settings": "Settings",
|
|
260
|
+
"resourceDetail.sections": "Resource sections",
|
|
261
|
+
"error.title": "We couldn’t load deployments",
|
|
262
|
+
"error.message": "The service didn’t respond in time. Your data is safe; try again in a moment.",
|
|
263
|
+
"error.support": "Contact support",
|
|
264
|
+
"emptyState.noAccess.title": "You don’t have access to {resource}",
|
|
265
|
+
"emptyState.noAccess.description": "Ask {owner} to grant you a role that includes {resource} permissions.",
|
|
266
|
+
"emptyState.noAccess.request": "Request access",
|
|
267
|
+
"emptyState.noAccess.requested": "Access requested",
|
|
268
|
+
"emptyState.noAccess.sent": "Access request sent",
|
|
269
|
+
"emptyState.noResults.queryTitleBefore": "No {entity} match “",
|
|
270
|
+
"emptyState.noResults.queryTitleAfter": "”",
|
|
271
|
+
"emptyState.noResults.title": "No {entity} found",
|
|
272
|
+
"emptyState.noResults.description": "Check the spelling or try a broader search{count, plural, =0 {} one { with {count} filter applied} other { with {count} filters applied}}.",
|
|
273
|
+
"emptyState.noResults.clearFilters": "Clear filters",
|
|
274
|
+
"emptyState.noResults.clearSearch": "Clear search",
|
|
275
|
+
"emptyState.firstRun.title": "Create your first project",
|
|
276
|
+
"emptyState.firstRun.description": "Projects group your services, environments and deployments. Start one from a repository in a couple of minutes.",
|
|
277
|
+
"emptyState.firstRun.action": "New project",
|
|
278
|
+
"emptyState.firstRun.guide": "Read the guide",
|
|
279
|
+
"callout.title": "You have used 92% of your build minutes",
|
|
280
|
+
"callout.description": "Builds will queue once the monthly limit is reached. Upgrade the plan or reduce concurrent builds.",
|
|
281
|
+
"callout.upgrade": "Upgrade plan",
|
|
282
|
+
"callout.viewUsage": "View usage",
|
|
283
|
+
"descriptionList.title": "Configuration",
|
|
284
|
+
"descriptionList.description": "Settings of this deployment.",
|
|
285
|
+
"descriptionList.edit": "Edit",
|
|
286
|
+
"descriptionList.copy": "Copy {label}",
|
|
287
|
+
"descriptionList.copied": "{label} copied",
|
|
288
|
+
"pageHeader.title": "Deployments",
|
|
289
|
+
"pageHeader.description": "Every build and release of this project across its environments.",
|
|
290
|
+
"pageHeader.moreActions": "More actions",
|
|
291
|
+
"logViewer.title": "Logs",
|
|
292
|
+
"logViewer.level.debug": "DEBUG",
|
|
293
|
+
"logViewer.level.info": "INFO",
|
|
294
|
+
"logViewer.level.warn": "WARN",
|
|
295
|
+
"logViewer.level.error": "ERROR",
|
|
296
|
+
"logViewer.levelFilterOption.debug": "debug",
|
|
297
|
+
"logViewer.levelFilterOption.info": "info",
|
|
298
|
+
"logViewer.levelFilterOption.warn": "warn",
|
|
299
|
+
"logViewer.levelFilterOption.error": "error",
|
|
300
|
+
"logViewer.levelFilter": "Log levels",
|
|
301
|
+
"logViewer.searchLabel": "Search logs",
|
|
302
|
+
"logViewer.searchPlaceholder": "Search…",
|
|
303
|
+
"logViewer.follow": "Follow",
|
|
304
|
+
"logViewer.count": "{visible} of {total}",
|
|
305
|
+
"logViewer.empty": "No lines match the current filters.",
|
|
306
|
+
"logViewer.inspect": "Inspect event {timestamp}",
|
|
307
|
+
"logViewer.copy": "Copy line {timestamp}",
|
|
192
308
|
"pageHeader.sections": "Page sections",
|
|
193
309
|
"thumbnail.uploading": "Uploading {label}",
|
|
194
310
|
"thumbnail.error": "Upload failed",
|
|
@@ -388,6 +504,7 @@ const en = {
|
|
|
388
504
|
"calendar.month": "Month",
|
|
389
505
|
"calendar.year": "Year",
|
|
390
506
|
"calendar.label": "Calendar",
|
|
507
|
+
"calendar.localeDefaults": "Locale defaults",
|
|
391
508
|
"calendar.previousMonth": "Previous month",
|
|
392
509
|
"calendar.nextMonth": "Next month",
|
|
393
510
|
"calendar.today": "Today",
|
|
@@ -569,6 +686,9 @@ const en = {
|
|
|
569
686
|
"table.rowsPerPage": "Rows per page",
|
|
570
687
|
"table.pagination": "{noun} pagination",
|
|
571
688
|
"table.selectAllPage": "Select all rows on this page",
|
|
689
|
+
"table.pageSelected": "All {count} rows on this page are selected.",
|
|
690
|
+
"table.selectAllMatching": "Select all {count} rows",
|
|
691
|
+
"table.allMatchingSelected": "All {count} rows are selected.",
|
|
572
692
|
"table.selectRow": "Select {label}",
|
|
573
693
|
"table.selection": "Selection",
|
|
574
694
|
"table.actions": "Actions",
|
|
@@ -872,6 +992,7 @@ const en = {
|
|
|
872
992
|
"queryBuilder.value": "Value",
|
|
873
993
|
"queryBuilder.valueFrom": "From",
|
|
874
994
|
"queryBuilder.valueTo": "To",
|
|
995
|
+
"queryBuilder.rangeInverted": "'From' must not be after 'To'.",
|
|
875
996
|
"queryBuilder.addCondition": "Add condition",
|
|
876
997
|
"queryBuilder.addGroup": "Add group",
|
|
877
998
|
"queryBuilder.removeCondition": "Remove condition {index}",
|
|
@@ -945,12 +1066,204 @@ const en = {
|
|
|
945
1066
|
"cron.onDaysOfMonth": "on {count, plural, one {day} other {days}} {days} of the month",
|
|
946
1067
|
"cron.or": "{a} or {b}",
|
|
947
1068
|
"cron.inMonths": "in {months}",
|
|
948
|
-
"cron.join": "{base}, {part}"
|
|
1069
|
+
"cron.join": "{base}, {part}",
|
|
1070
|
+
"formSection.title": "General",
|
|
1071
|
+
"formSection.description": "Basic details shown to everyone who can access this project.",
|
|
1072
|
+
"settingsRow.label": "Deployment notifications",
|
|
1073
|
+
"settingsRow.description": "Email the project owners when a deployment fails or is rolled back.",
|
|
1074
|
+
"validationSummary.title": "There {count, plural, one {is 1 problem} other {are {count} problems}} with this form",
|
|
1075
|
+
"ssoButtons.label": "Single sign-on",
|
|
1076
|
+
"authValidation.emailInvalid": "Enter a valid email address.",
|
|
1077
|
+
"authValidation.identifierInvalid": "Enter a valid identifier.",
|
|
1078
|
+
"authValidation.fieldRequired": "Enter {label}.",
|
|
1079
|
+
"authValidation.fallbackError": "Something went wrong. Try again.",
|
|
1080
|
+
"signIn.eyebrow": "Secure access",
|
|
1081
|
+
"signIn.title": "Sign in to your workspace",
|
|
1082
|
+
"signIn.description": "Use your work email to continue.",
|
|
1083
|
+
"signIn.formLabel": "Sign in",
|
|
1084
|
+
"signIn.identifierLabel": "Email",
|
|
1085
|
+
"signIn.identifierPlaceholder": "name@company.com",
|
|
1086
|
+
"signIn.password": "Password",
|
|
1087
|
+
"signIn.forgotPassword": "Forgot password?",
|
|
1088
|
+
"signIn.passwordRequired": "Enter your password.",
|
|
1089
|
+
"signIn.remember": "Keep me signed in",
|
|
1090
|
+
"signIn.submit": "Sign in",
|
|
1091
|
+
"signIn.divider": "Or continue with",
|
|
1092
|
+
"signIn.signUpPrompt": "New here?",
|
|
1093
|
+
"signIn.signUp": "Create an account",
|
|
1094
|
+
"signIn.fallbackError": "Sign-in failed. Try again.",
|
|
1095
|
+
"dangerZone.title": "Danger zone",
|
|
1096
|
+
"dangerZone.description": "These actions affect the whole project and every member who can access it.",
|
|
1097
|
+
"dangerZone.confirmationTitle": "{title}?",
|
|
1098
|
+
"dangerZone.confirmPrompt": "Type {text} to confirm",
|
|
1099
|
+
"dangerZone.cancel": "Cancel",
|
|
1100
|
+
"dangerZone.fallbackError": "Something went wrong. Try again.",
|
|
1101
|
+
"credentialDisclosure.copiedFor": "{label}: {copied}",
|
|
1102
|
+
"createApiKey.title": "Create API key",
|
|
1103
|
+
"createApiKey.description": "Keys act on behalf of this workspace. Grant only the scopes the integration needs.",
|
|
1104
|
+
"createApiKey.name": "Name",
|
|
1105
|
+
"createApiKey.namePlaceholder": "ci-deployments",
|
|
1106
|
+
"createApiKey.nameRequired": "Give the key a name.",
|
|
1107
|
+
"createApiKey.scopes": "Scopes",
|
|
1108
|
+
"createApiKey.scopesRequired": "Select at least one scope.",
|
|
1109
|
+
"createApiKey.expiration": "Expiration",
|
|
1110
|
+
"createApiKey.errorTitle": "Key not created",
|
|
1111
|
+
"createApiKey.fallbackError": "The key could not be created.",
|
|
1112
|
+
"createApiKey.cancel": "Cancel",
|
|
1113
|
+
"createApiKey.submit": "Create key",
|
|
1114
|
+
"createApiKey.successTitle": "API key created",
|
|
1115
|
+
"createApiKey.successDescription": "Store it in your secrets manager. Use it as a bearer token.",
|
|
1116
|
+
"createApiKey.warningTitle": "Copy this key now",
|
|
1117
|
+
"createApiKey.warningDescription": "For your security it is shown only once. If you lose it, revoke it and create a new one.",
|
|
1118
|
+
"createApiKey.secretLabel": "New API key",
|
|
1119
|
+
"createApiKey.done": "Done",
|
|
1120
|
+
"inviteMembers.title": "Invite members",
|
|
1121
|
+
"inviteMembers.description": "Invitations expire after 7 days. Separate addresses with commas or Enter.",
|
|
1122
|
+
"inviteMembers.emails": "Email addresses",
|
|
1123
|
+
"inviteMembers.placeholder": "name@company.com",
|
|
1124
|
+
"inviteMembers.listLabel": "Invited addresses",
|
|
1125
|
+
"inviteMembers.role": "Role",
|
|
1126
|
+
"inviteMembers.message": "Message (optional)",
|
|
1127
|
+
"inviteMembers.messagePlaceholder": "Join us on the billing-dashboard project.",
|
|
1128
|
+
"inviteMembers.emailRequired": "Add at least one email address.",
|
|
1129
|
+
"inviteMembers.emailInvalid": "{email} is not a valid email address",
|
|
1130
|
+
"inviteMembers.fixInvalid": "Fix {count} invalid {count, plural, one {address} other {addresses}}.",
|
|
1131
|
+
"inviteMembers.errorTitle": "Invitations not sent",
|
|
1132
|
+
"inviteMembers.fallbackError": "The invitations could not be sent.",
|
|
1133
|
+
"inviteMembers.cancel": "Cancel",
|
|
1134
|
+
"inviteMembers.submit": "Send invitation",
|
|
1135
|
+
"inviteMembers.submitMany": "Send {count} invitations",
|
|
1136
|
+
"forgotPassword.formLabel": "Reset password request",
|
|
1137
|
+
"forgotPassword.eyebrow": "Account recovery",
|
|
1138
|
+
"forgotPassword.title": "Forgot your password?",
|
|
1139
|
+
"forgotPassword.description": "Enter the email you sign in with and we'll send you a reset link.",
|
|
1140
|
+
"forgotPassword.sentTitle": "Check your email",
|
|
1141
|
+
"forgotPassword.sentDescription": "If an account exists for {email}, you will receive a link to reset your password. It expires in 1 hour.",
|
|
1142
|
+
"forgotPassword.addressFallback": "that address",
|
|
1143
|
+
"forgotPassword.sentStatus": "Reset link sent.",
|
|
1144
|
+
"forgotPassword.fallbackError": "The reset link could not be sent.",
|
|
1145
|
+
"forgotPassword.backToSignIn": "Back to sign in",
|
|
1146
|
+
"forgotPassword.resend": "Resend link",
|
|
1147
|
+
"forgotPassword.changeEmail": "Use a different email",
|
|
1148
|
+
"forgotPassword.identifierLabel": "Email",
|
|
1149
|
+
"forgotPassword.identifierPlaceholder": "name@company.com",
|
|
1150
|
+
"forgotPassword.submit": "Send reset link",
|
|
1151
|
+
"mfaChallenge.eyebrow": "Two-step verification",
|
|
1152
|
+
"mfaChallenge.title": "Enter your verification code",
|
|
1153
|
+
"mfaChallenge.backupTitle": "Use a backup code",
|
|
1154
|
+
"mfaChallenge.backupDescription": "Enter one of the backup codes you saved when you turned on two-step verification. Each code works once.",
|
|
1155
|
+
"mfaChallenge.destinationDescription": "We sent a {length}-digit code to {destination}.",
|
|
1156
|
+
"mfaChallenge.description": "Open your authenticator app and enter the {length}-digit code.",
|
|
1157
|
+
"mfaChallenge.formLabel": "Verify your identity",
|
|
1158
|
+
"mfaChallenge.codeLabel": "Verification code",
|
|
1159
|
+
"mfaChallenge.codeRequired": "Enter all {length} digits.",
|
|
1160
|
+
"mfaChallenge.backupLabel": "Backup code",
|
|
1161
|
+
"mfaChallenge.backupPlaceholder": "xxxx-xxxx",
|
|
1162
|
+
"mfaChallenge.backupHint": "Backup codes are 8 characters, with or without the dash.",
|
|
1163
|
+
"mfaChallenge.backupRequired": "Enter a backup code.",
|
|
1164
|
+
"mfaChallenge.submit": "Verify",
|
|
1165
|
+
"mfaChallenge.useCode": "Use a verification code",
|
|
1166
|
+
"mfaChallenge.resendIn": "Resend code in {remaining}s",
|
|
1167
|
+
"mfaChallenge.resend": "Resend code",
|
|
1168
|
+
"mfaChallenge.resent": "A new code was sent.",
|
|
1169
|
+
"mfaChallenge.backToSignIn": "Back to sign in",
|
|
1170
|
+
"mfaChallenge.fallbackError": "That code did not work. Try again.",
|
|
1171
|
+
"resetPassword.eyebrow": "Account recovery",
|
|
1172
|
+
"resetPassword.title": "Set a new password",
|
|
1173
|
+
"resetPassword.description": "Use at least {minimum} characters. Avoid passwords you use elsewhere.",
|
|
1174
|
+
"resetPassword.newPassword": "New password",
|
|
1175
|
+
"resetPassword.confirmPassword": "Confirm password",
|
|
1176
|
+
"resetPassword.passwordTooShort": "Use at least {minimum} characters.",
|
|
1177
|
+
"resetPassword.passwordMismatch": "Passwords don't match.",
|
|
1178
|
+
"resetPassword.submit": "Update password",
|
|
1179
|
+
"resetPassword.successTitle": "Password updated",
|
|
1180
|
+
"resetPassword.successDescription": "You can now sign in with your new password. Other sessions were signed out.",
|
|
1181
|
+
"resetPassword.successStatus": "Password updated.",
|
|
1182
|
+
"resetPassword.continue": "Continue to sign in",
|
|
1183
|
+
"resetPassword.fallbackError": "Your password could not be updated.",
|
|
1184
|
+
"signUp.eyebrow": "Get started",
|
|
1185
|
+
"signUp.title": "Create your account",
|
|
1186
|
+
"signUp.description": "Set up a workspace for your team in a couple of minutes.",
|
|
1187
|
+
"signUp.name": "Full name",
|
|
1188
|
+
"signUp.namePlaceholder": "Avery Collins",
|
|
1189
|
+
"signUp.nameRequired": "Enter your name.",
|
|
1190
|
+
"signUp.email": "Work email",
|
|
1191
|
+
"signUp.emailPlaceholder": "name@company.com",
|
|
1192
|
+
"signUp.password": "Password",
|
|
1193
|
+
"signUp.passwordTooShort": "Use at least {minimum} characters.",
|
|
1194
|
+
"signUp.termsRequired": "Accept the terms to continue.",
|
|
1195
|
+
"signUp.terms": "Terms",
|
|
1196
|
+
"signUp.privacy": "Privacy Policy",
|
|
1197
|
+
"signUp.termsConsent": "I agree to the {terms} and {privacy}.",
|
|
1198
|
+
"signUp.submit": "Create account",
|
|
1199
|
+
"signUp.divider": "Or sign up with",
|
|
1200
|
+
"signUp.signInPrompt": "Already have an account?",
|
|
1201
|
+
"signUp.signIn": "Sign in",
|
|
1202
|
+
"signUp.policyLoading": "Loading sign-up policy…",
|
|
1203
|
+
"signUp.fallbackError": "The account could not be created."
|
|
949
1204
|
};
|
|
950
1205
|
//#endregion
|
|
951
1206
|
//#region src/i18n/messages/es.ts
|
|
952
1207
|
/** Built-in Spanish catalog. */
|
|
953
1208
|
const es = {
|
|
1209
|
+
"themeScope.title": "Vista previa clara",
|
|
1210
|
+
"themeScope.description": "Esta tarjeta y su menú usan el tema claro.",
|
|
1211
|
+
"themeScope.choice": "Opción de vista previa",
|
|
1212
|
+
"themeScope.personal": "Personal",
|
|
1213
|
+
"themeScope.nested": "Una región oscura dentro de una región clara.",
|
|
1214
|
+
"themeScope.release": "Liberar tema forzado",
|
|
1215
|
+
"themeScope.force": "Forzar tema claro",
|
|
1216
|
+
"resourceDetail.overview": "Resumen",
|
|
1217
|
+
"resourceDetail.activity": "Actividad",
|
|
1218
|
+
"resourceDetail.settings": "Configuración",
|
|
1219
|
+
"resourceDetail.sections": "Secciones del recurso",
|
|
1220
|
+
"error.title": "No se pudieron cargar los despliegues",
|
|
1221
|
+
"error.message": "El servicio no respondió a tiempo. Tus datos están a salvo; vuelve a intentarlo en un momento.",
|
|
1222
|
+
"error.support": "Contactar con soporte",
|
|
1223
|
+
"emptyState.noAccess.title": "No tienes acceso a {resource}",
|
|
1224
|
+
"emptyState.noAccess.description": "Pide a {owner} que te asigne un rol con permisos de {resource}.",
|
|
1225
|
+
"emptyState.noAccess.request": "Solicitar acceso",
|
|
1226
|
+
"emptyState.noAccess.requested": "Acceso solicitado",
|
|
1227
|
+
"emptyState.noAccess.sent": "Solicitud de acceso enviada",
|
|
1228
|
+
"emptyState.noResults.queryTitleBefore": "No hay {entity} que coincidan con “",
|
|
1229
|
+
"emptyState.noResults.queryTitleAfter": "”",
|
|
1230
|
+
"emptyState.noResults.title": "No se encontraron {entity}",
|
|
1231
|
+
"emptyState.noResults.description": "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}}.",
|
|
1232
|
+
"emptyState.noResults.clearFilters": "Borrar filtros",
|
|
1233
|
+
"emptyState.noResults.clearSearch": "Borrar búsqueda",
|
|
1234
|
+
"emptyState.firstRun.title": "Crea tu primer proyecto",
|
|
1235
|
+
"emptyState.firstRun.description": "Los proyectos agrupan tus servicios, entornos y despliegues. Crea uno desde un repositorio en un par de minutos.",
|
|
1236
|
+
"emptyState.firstRun.action": "Nuevo proyecto",
|
|
1237
|
+
"emptyState.firstRun.guide": "Leer la guía",
|
|
1238
|
+
"callout.title": "Has usado el 92% de tus minutos de compilación",
|
|
1239
|
+
"callout.description": "Las compilaciones se pondrán en cola al alcanzar el límite mensual. Mejora el plan o reduce las compilaciones simultáneas.",
|
|
1240
|
+
"callout.upgrade": "Mejorar el plan",
|
|
1241
|
+
"callout.viewUsage": "Ver uso",
|
|
1242
|
+
"descriptionList.title": "Configuración",
|
|
1243
|
+
"descriptionList.description": "Configuración de este despliegue.",
|
|
1244
|
+
"descriptionList.edit": "Editar",
|
|
1245
|
+
"descriptionList.copy": "Copiar {label}",
|
|
1246
|
+
"descriptionList.copied": "{label} copiado",
|
|
1247
|
+
"pageHeader.title": "Despliegues",
|
|
1248
|
+
"pageHeader.description": "Todas las compilaciones y versiones de este proyecto en sus entornos.",
|
|
1249
|
+
"pageHeader.moreActions": "Más acciones",
|
|
1250
|
+
"logViewer.title": "Registros",
|
|
1251
|
+
"logViewer.level.debug": "DEBUG",
|
|
1252
|
+
"logViewer.level.info": "INFO",
|
|
1253
|
+
"logViewer.level.warn": "AVISO",
|
|
1254
|
+
"logViewer.level.error": "ERROR",
|
|
1255
|
+
"logViewer.levelFilterOption.debug": "debug",
|
|
1256
|
+
"logViewer.levelFilterOption.info": "info",
|
|
1257
|
+
"logViewer.levelFilterOption.warn": "aviso",
|
|
1258
|
+
"logViewer.levelFilterOption.error": "error",
|
|
1259
|
+
"logViewer.levelFilter": "Niveles de registro",
|
|
1260
|
+
"logViewer.searchLabel": "Buscar en los registros",
|
|
1261
|
+
"logViewer.searchPlaceholder": "Buscar…",
|
|
1262
|
+
"logViewer.follow": "Seguir",
|
|
1263
|
+
"logViewer.count": "{visible} de {total}",
|
|
1264
|
+
"logViewer.empty": "Ninguna línea coincide con los filtros actuales.",
|
|
1265
|
+
"logViewer.inspect": "Inspeccionar evento {timestamp}",
|
|
1266
|
+
"logViewer.copy": "Copiar línea {timestamp}",
|
|
954
1267
|
"pageHeader.sections": "Secciones de la página",
|
|
955
1268
|
"thumbnail.uploading": "Subiendo {label}",
|
|
956
1269
|
"thumbnail.error": "Error al subir",
|
|
@@ -1178,6 +1491,7 @@ const es = {
|
|
|
1178
1491
|
"calendar.month": "Mes",
|
|
1179
1492
|
"calendar.year": "Año",
|
|
1180
1493
|
"calendar.label": "Calendario",
|
|
1494
|
+
"calendar.localeDefaults": "Valores predeterminados regionales",
|
|
1181
1495
|
"calendar.previousMonth": "Mes anterior",
|
|
1182
1496
|
"calendar.nextMonth": "Mes siguiente",
|
|
1183
1497
|
"calendar.today": "Hoy",
|
|
@@ -1331,6 +1645,9 @@ const es = {
|
|
|
1331
1645
|
"table.rowsPerPage": "Filas por página",
|
|
1332
1646
|
"table.pagination": "Paginación: {noun}",
|
|
1333
1647
|
"table.selectAllPage": "Seleccionar todas las filas de esta página",
|
|
1648
|
+
"table.pageSelected": "Las {count} filas de esta página están seleccionadas.",
|
|
1649
|
+
"table.selectAllMatching": "Seleccionar las {count} filas",
|
|
1650
|
+
"table.allMatchingSelected": "Las {count} filas están seleccionadas.",
|
|
1334
1651
|
"table.selectRow": "Seleccionar {label}",
|
|
1335
1652
|
"table.selection": "Selección",
|
|
1336
1653
|
"table.actions": "Acciones",
|
|
@@ -1634,6 +1951,7 @@ const es = {
|
|
|
1634
1951
|
"queryBuilder.value": "Valor",
|
|
1635
1952
|
"queryBuilder.valueFrom": "Desde",
|
|
1636
1953
|
"queryBuilder.valueTo": "Hasta",
|
|
1954
|
+
"queryBuilder.rangeInverted": "«Desde» no puede ser posterior a «Hasta».",
|
|
1637
1955
|
"queryBuilder.addCondition": "Añadir condición",
|
|
1638
1956
|
"queryBuilder.addGroup": "Añadir grupo",
|
|
1639
1957
|
"queryBuilder.removeCondition": "Quitar condición {index}",
|
|
@@ -1707,7 +2025,141 @@ const es = {
|
|
|
1707
2025
|
"cron.onDaysOfMonth": "{count, plural, one {el día} other {los días}} {days} del mes",
|
|
1708
2026
|
"cron.or": "{a} o {b}",
|
|
1709
2027
|
"cron.inMonths": "en {months}",
|
|
1710
|
-
"cron.join": "{base}, {part}"
|
|
2028
|
+
"cron.join": "{base}, {part}",
|
|
2029
|
+
"formSection.title": "General",
|
|
2030
|
+
"formSection.description": "Datos básicos que ven todos los que tienen acceso a este proyecto.",
|
|
2031
|
+
"settingsRow.label": "Notificaciones de despliegue",
|
|
2032
|
+
"settingsRow.description": "Envía un correo a los propietarios del proyecto cuando un despliegue falle o se revierta.",
|
|
2033
|
+
"validationSummary.title": "Hay {count, plural, one {1 problema} other {{count} problemas}} en este formulario",
|
|
2034
|
+
"ssoButtons.label": "Inicio de sesión único",
|
|
2035
|
+
"authValidation.emailInvalid": "Introduce una dirección de correo válida.",
|
|
2036
|
+
"authValidation.identifierInvalid": "Introduce un identificador válido.",
|
|
2037
|
+
"authValidation.fieldRequired": "Introduce {label}.",
|
|
2038
|
+
"authValidation.fallbackError": "Algo salió mal. Inténtalo de nuevo.",
|
|
2039
|
+
"signIn.eyebrow": "Acceso seguro",
|
|
2040
|
+
"signIn.title": "Inicia sesión en tu espacio de trabajo",
|
|
2041
|
+
"signIn.description": "Usa tu correo de trabajo para continuar.",
|
|
2042
|
+
"signIn.formLabel": "Iniciar sesión",
|
|
2043
|
+
"signIn.identifierLabel": "Correo electrónico",
|
|
2044
|
+
"signIn.identifierPlaceholder": "nombre@empresa.com",
|
|
2045
|
+
"signIn.password": "Contraseña",
|
|
2046
|
+
"signIn.forgotPassword": "¿Has olvidado tu contraseña?",
|
|
2047
|
+
"signIn.passwordRequired": "Introduce tu contraseña.",
|
|
2048
|
+
"signIn.remember": "Mantener la sesión iniciada",
|
|
2049
|
+
"signIn.submit": "Iniciar sesión",
|
|
2050
|
+
"signIn.divider": "O continúa con",
|
|
2051
|
+
"signIn.signUpPrompt": "¿Eres nuevo aquí?",
|
|
2052
|
+
"signIn.signUp": "Crear una cuenta",
|
|
2053
|
+
"signIn.fallbackError": "No se pudo iniciar sesión. Inténtalo de nuevo.",
|
|
2054
|
+
"dangerZone.title": "Zona de peligro",
|
|
2055
|
+
"dangerZone.description": "Estas acciones afectan a todo el proyecto y a cada miembro que tiene acceso.",
|
|
2056
|
+
"dangerZone.confirmationTitle": "¿{title}?",
|
|
2057
|
+
"dangerZone.confirmPrompt": "Escribe {text} para confirmar",
|
|
2058
|
+
"dangerZone.cancel": "Cancelar",
|
|
2059
|
+
"dangerZone.fallbackError": "Algo salió mal. Inténtalo de nuevo.",
|
|
2060
|
+
"credentialDisclosure.copiedFor": "{label}: {copied}",
|
|
2061
|
+
"createApiKey.title": "Crear clave de API",
|
|
2062
|
+
"createApiKey.description": "Las claves actúan en nombre de este espacio de trabajo. Concede solo los permisos que necesite la integración.",
|
|
2063
|
+
"createApiKey.name": "Nombre",
|
|
2064
|
+
"createApiKey.namePlaceholder": "despliegues-ci",
|
|
2065
|
+
"createApiKey.nameRequired": "Asigna un nombre a la clave.",
|
|
2066
|
+
"createApiKey.scopes": "Permisos",
|
|
2067
|
+
"createApiKey.scopesRequired": "Selecciona al menos un permiso.",
|
|
2068
|
+
"createApiKey.expiration": "Caducidad",
|
|
2069
|
+
"createApiKey.errorTitle": "No se ha creado la clave",
|
|
2070
|
+
"createApiKey.fallbackError": "No se pudo crear la clave.",
|
|
2071
|
+
"createApiKey.cancel": "Cancelar",
|
|
2072
|
+
"createApiKey.submit": "Crear clave",
|
|
2073
|
+
"createApiKey.successTitle": "Clave de API creada",
|
|
2074
|
+
"createApiKey.successDescription": "Guárdala en tu gestor de secretos. Úsala como token de portador.",
|
|
2075
|
+
"createApiKey.warningTitle": "Copia esta clave ahora",
|
|
2076
|
+
"createApiKey.warningDescription": "Por tu seguridad, solo se muestra una vez. Si la pierdes, revócala y crea otra.",
|
|
2077
|
+
"createApiKey.secretLabel": "Nueva clave de API",
|
|
2078
|
+
"createApiKey.done": "Listo",
|
|
2079
|
+
"inviteMembers.title": "Invitar miembros",
|
|
2080
|
+
"inviteMembers.description": "Las invitaciones caducan a los 7 días. Separa las direcciones con comas o Intro.",
|
|
2081
|
+
"inviteMembers.emails": "Direcciones de correo",
|
|
2082
|
+
"inviteMembers.placeholder": "nombre@empresa.com",
|
|
2083
|
+
"inviteMembers.listLabel": "Direcciones invitadas",
|
|
2084
|
+
"inviteMembers.role": "Rol",
|
|
2085
|
+
"inviteMembers.message": "Mensaje (opcional)",
|
|
2086
|
+
"inviteMembers.messagePlaceholder": "Únete a nuestro proyecto billing-dashboard.",
|
|
2087
|
+
"inviteMembers.emailRequired": "Añade al menos una dirección de correo.",
|
|
2088
|
+
"inviteMembers.emailInvalid": "{email} no es una dirección de correo válida",
|
|
2089
|
+
"inviteMembers.fixInvalid": "Corrige {count} {count, plural, one {dirección no válida} other {direcciones no válidas}}.",
|
|
2090
|
+
"inviteMembers.errorTitle": "Invitaciones no enviadas",
|
|
2091
|
+
"inviteMembers.fallbackError": "No se pudieron enviar las invitaciones.",
|
|
2092
|
+
"inviteMembers.cancel": "Cancelar",
|
|
2093
|
+
"inviteMembers.submit": "Enviar invitación",
|
|
2094
|
+
"inviteMembers.submitMany": "Enviar {count} invitaciones",
|
|
2095
|
+
"forgotPassword.formLabel": "Solicitud de restablecimiento de contraseña",
|
|
2096
|
+
"forgotPassword.eyebrow": "Recuperación de cuenta",
|
|
2097
|
+
"forgotPassword.title": "¿Has olvidado tu contraseña?",
|
|
2098
|
+
"forgotPassword.description": "Introduce el correo con el que inicias sesión y te enviaremos un enlace de restablecimiento.",
|
|
2099
|
+
"forgotPassword.sentTitle": "Revisa tu correo",
|
|
2100
|
+
"forgotPassword.sentDescription": "Si existe una cuenta para {email}, recibirás un enlace para restablecer tu contraseña. Caduca en 1 hora.",
|
|
2101
|
+
"forgotPassword.addressFallback": "esa dirección",
|
|
2102
|
+
"forgotPassword.sentStatus": "Enlace de restablecimiento enviado.",
|
|
2103
|
+
"forgotPassword.fallbackError": "No se pudo enviar el enlace de restablecimiento.",
|
|
2104
|
+
"forgotPassword.backToSignIn": "Volver al inicio de sesión",
|
|
2105
|
+
"forgotPassword.resend": "Reenviar enlace",
|
|
2106
|
+
"forgotPassword.changeEmail": "Usar otro correo",
|
|
2107
|
+
"forgotPassword.identifierLabel": "Correo electrónico",
|
|
2108
|
+
"forgotPassword.identifierPlaceholder": "nombre@empresa.com",
|
|
2109
|
+
"forgotPassword.submit": "Enviar enlace de restablecimiento",
|
|
2110
|
+
"mfaChallenge.eyebrow": "Verificación en dos pasos",
|
|
2111
|
+
"mfaChallenge.title": "Introduce tu código de verificación",
|
|
2112
|
+
"mfaChallenge.backupTitle": "Usar un código de respaldo",
|
|
2113
|
+
"mfaChallenge.backupDescription": "Introduce uno de los códigos de respaldo que guardaste al activar la verificación en dos pasos. Cada código funciona una vez.",
|
|
2114
|
+
"mfaChallenge.destinationDescription": "Hemos enviado un código de {length} dígitos a {destination}.",
|
|
2115
|
+
"mfaChallenge.description": "Abre tu aplicación de autenticación e introduce el código de {length} dígitos.",
|
|
2116
|
+
"mfaChallenge.formLabel": "Verifica tu identidad",
|
|
2117
|
+
"mfaChallenge.codeLabel": "Código de verificación",
|
|
2118
|
+
"mfaChallenge.codeRequired": "Introduce los {length} dígitos.",
|
|
2119
|
+
"mfaChallenge.backupLabel": "Código de respaldo",
|
|
2120
|
+
"mfaChallenge.backupPlaceholder": "xxxx-xxxx",
|
|
2121
|
+
"mfaChallenge.backupHint": "Los códigos de respaldo tienen 8 caracteres, con o sin guion.",
|
|
2122
|
+
"mfaChallenge.backupRequired": "Introduce un código de respaldo.",
|
|
2123
|
+
"mfaChallenge.submit": "Verificar",
|
|
2124
|
+
"mfaChallenge.useCode": "Usar un código de verificación",
|
|
2125
|
+
"mfaChallenge.resendIn": "Reenviar código en {remaining}s",
|
|
2126
|
+
"mfaChallenge.resend": "Reenviar código",
|
|
2127
|
+
"mfaChallenge.resent": "Se ha enviado un nuevo código.",
|
|
2128
|
+
"mfaChallenge.backToSignIn": "Volver al inicio de sesión",
|
|
2129
|
+
"mfaChallenge.fallbackError": "Ese código no ha funcionado. Inténtalo de nuevo.",
|
|
2130
|
+
"resetPassword.eyebrow": "Recuperación de cuenta",
|
|
2131
|
+
"resetPassword.title": "Establece una contraseña nueva",
|
|
2132
|
+
"resetPassword.description": "Usa al menos {minimum} caracteres. Evita contraseñas que uses en otros sitios.",
|
|
2133
|
+
"resetPassword.newPassword": "Nueva contraseña",
|
|
2134
|
+
"resetPassword.confirmPassword": "Confirmar contraseña",
|
|
2135
|
+
"resetPassword.passwordTooShort": "Usa al menos {minimum} caracteres.",
|
|
2136
|
+
"resetPassword.passwordMismatch": "Las contraseñas no coinciden.",
|
|
2137
|
+
"resetPassword.submit": "Actualizar contraseña",
|
|
2138
|
+
"resetPassword.successTitle": "Contraseña actualizada",
|
|
2139
|
+
"resetPassword.successDescription": "Ya puedes iniciar sesión con tu nueva contraseña. Se han cerrado las demás sesiones.",
|
|
2140
|
+
"resetPassword.successStatus": "Contraseña actualizada.",
|
|
2141
|
+
"resetPassword.continue": "Continuar al inicio de sesión",
|
|
2142
|
+
"resetPassword.fallbackError": "No se pudo actualizar tu contraseña.",
|
|
2143
|
+
"signUp.eyebrow": "Primeros pasos",
|
|
2144
|
+
"signUp.title": "Crea tu cuenta",
|
|
2145
|
+
"signUp.description": "Configura un espacio de trabajo para tu equipo en un par de minutos.",
|
|
2146
|
+
"signUp.name": "Nombre completo",
|
|
2147
|
+
"signUp.namePlaceholder": "Avery Collins",
|
|
2148
|
+
"signUp.nameRequired": "Introduce tu nombre.",
|
|
2149
|
+
"signUp.email": "Correo de trabajo",
|
|
2150
|
+
"signUp.emailPlaceholder": "nombre@empresa.com",
|
|
2151
|
+
"signUp.password": "Contraseña",
|
|
2152
|
+
"signUp.passwordTooShort": "Usa al menos {minimum} caracteres.",
|
|
2153
|
+
"signUp.termsRequired": "Acepta los términos para continuar.",
|
|
2154
|
+
"signUp.terms": "Términos",
|
|
2155
|
+
"signUp.privacy": "Política de privacidad",
|
|
2156
|
+
"signUp.termsConsent": "Acepto los {terms} y la {privacy}.",
|
|
2157
|
+
"signUp.submit": "Crear cuenta",
|
|
2158
|
+
"signUp.divider": "O regístrate con",
|
|
2159
|
+
"signUp.signInPrompt": "¿Ya tienes una cuenta?",
|
|
2160
|
+
"signUp.signIn": "Iniciar sesión",
|
|
2161
|
+
"signUp.policyLoading": "Cargando la política de registro…",
|
|
2162
|
+
"signUp.fallbackError": "No se pudo crear la cuenta."
|
|
1711
2163
|
};
|
|
1712
2164
|
//#endregion
|
|
1713
2165
|
//#region src/i18n/messages/index.ts
|
|
@@ -2108,6 +2560,6 @@ function FieldsetDescription({ className, ...props }) {
|
|
|
2108
2560
|
});
|
|
2109
2561
|
}
|
|
2110
2562
|
//#endregion
|
|
2111
|
-
export { createFormatters as A, builtInMessages as C, catalogs as D, usePortalDir as E,
|
|
2563
|
+
export { createFormatters as A, builtInMessages as C, catalogs as D, usePortalDir as E, cn as F, interpolate as M, localeDirection as N, es as O, tv as P, I18nProvider as S, useOptionalI18n as T, buttonVariants as _, FieldLabel as a, DensityContext as b, FieldsetLegend as c, useAnnounce as d, useHasLiveAnnouncer as f, BUTTON_ICON_SIZE as g, IconButton as h, FieldItem as i, formatBytes as j, en as k, fieldVariants as l, Button$1 as m, FieldDescription as n, Fieldset$1 as o, liveAnnouncerVariants as p, FieldError as r, FieldsetDescription as s, Field$1 as t, LiveAnnouncer as u, Spinner as v, useI18n as w, useDensity as x, RTL_FLIP as y };
|
|
2112
2564
|
|
|
2113
|
-
//# sourceMappingURL=Field-
|
|
2565
|
+
//# sourceMappingURL=Field-fY45gbLU.js.map
|