@lastbrain/ai-ui-react 1.0.73 → 1.0.75
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/components/AiChipLabel.d.ts.map +1 -1
- package/dist/components/AiChipLabel.js +10 -7
- package/dist/components/AiContextButton.d.ts +1 -1
- package/dist/components/AiContextButton.d.ts.map +1 -1
- package/dist/components/AiContextButton.js +26 -12
- package/dist/components/AiImageButton.d.ts.map +1 -1
- package/dist/components/AiImageButton.js +35 -16
- package/dist/components/AiInput.d.ts.map +1 -1
- package/dist/components/AiInput.js +15 -5
- package/dist/components/AiModelSelect.d.ts.map +1 -1
- package/dist/components/AiModelSelect.js +3 -1
- package/dist/components/AiPromptPanel.d.ts.map +1 -1
- package/dist/components/AiPromptPanel.js +72 -47
- package/dist/components/AiSelect.d.ts.map +1 -1
- package/dist/components/AiSelect.js +8 -3
- package/dist/components/AiStatusButton.d.ts.map +1 -1
- package/dist/components/AiStatusButton.js +23 -20
- package/dist/components/AiTextarea.d.ts.map +1 -1
- package/dist/components/AiTextarea.js +19 -6
- package/dist/components/ErrorToast.d.ts.map +1 -1
- package/dist/components/ErrorToast.js +4 -2
- package/dist/components/LBApiKeySelector.d.ts.map +1 -1
- package/dist/components/LBApiKeySelector.js +13 -5
- package/dist/components/LBConnectButton.d.ts.map +1 -1
- package/dist/components/LBConnectButton.js +6 -3
- package/dist/components/LBKeyPicker.d.ts.map +1 -1
- package/dist/components/LBKeyPicker.js +8 -4
- package/dist/components/LBSigninModal.d.ts.map +1 -1
- package/dist/components/LBSigninModal.js +13 -7
- package/dist/components/UsageToast.d.ts.map +1 -1
- package/dist/components/UsageToast.js +4 -2
- package/dist/context/I18nContext.d.ts +15 -0
- package/dist/context/I18nContext.d.ts.map +1 -0
- package/dist/context/I18nContext.js +44 -0
- package/dist/context/LBAuthProvider.d.ts +4 -1
- package/dist/context/LBAuthProvider.d.ts.map +1 -1
- package/dist/context/LBAuthProvider.js +3 -2
- package/dist/hooks/useAiCallImage.d.ts.map +1 -1
- package/dist/hooks/useAiCallImage.js +1 -107
- package/dist/hooks/useAiCallText.d.ts.map +1 -1
- package/dist/hooks/useAiCallText.js +1 -25
- package/dist/hooks/useLoadingTimer.d.ts +5 -0
- package/dist/hooks/useLoadingTimer.d.ts.map +1 -0
- package/dist/hooks/useLoadingTimer.js +31 -0
- package/dist/i18n/de.json +62 -0
- package/dist/i18n/en.json +128 -0
- package/dist/i18n/es.json +70 -0
- package/dist/i18n/fr.json +128 -0
- package/dist/i18n/it.json +62 -0
- package/dist/i18n/pt.json +62 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/styles.css +141 -1
- package/package.json +3 -3
- package/src/components/AiChipLabel.tsx +14 -8
- package/src/components/AiContextButton.tsx +53 -20
- package/src/components/AiImageButton.tsx +58 -25
- package/src/components/AiInput.tsx +20 -5
- package/src/components/AiModelSelect.tsx +5 -1
- package/src/components/AiPromptPanel.tsx +203 -76
- package/src/components/AiSelect.tsx +8 -3
- package/src/components/AiStatusButton.tsx +75 -46
- package/src/components/AiTextarea.tsx +24 -6
- package/src/components/ErrorToast.tsx +4 -2
- package/src/components/LBApiKeySelector.tsx +29 -9
- package/src/components/LBConnectButton.tsx +7 -3
- package/src/components/LBKeyPicker.tsx +10 -4
- package/src/components/LBSigninModal.tsx +33 -15
- package/src/components/UsageToast.tsx +4 -2
- package/src/context/I18nContext.tsx +75 -0
- package/src/context/LBAuthProvider.tsx +9 -1
- package/src/hooks/useAiCallImage.ts +1 -149
- package/src/hooks/useAiCallText.ts +1 -30
- package/src/hooks/useLoadingTimer.ts +38 -0
- package/src/i18n/de.json +62 -0
- package/src/i18n/en.json +128 -0
- package/src/i18n/es.json +70 -0
- package/src/i18n/fr.json +128 -0
- package/src/i18n/it.json +62 -0
- package/src/i18n/pt.json +62 -0
- package/src/index.ts +2 -0
- package/src/styles.css +141 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadingTimer.d.ts","sourceRoot":"","sources":["../../src/hooks/useLoadingTimer.ts"],"names":[],"mappings":"AAWA,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO;;;EA0B9C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
function formatElapsed(seconds) {
|
|
4
|
+
const mins = Math.floor(seconds / 60);
|
|
5
|
+
const secs = seconds % 60;
|
|
6
|
+
if (mins <= 0)
|
|
7
|
+
return `${secs}s`;
|
|
8
|
+
return `${String(mins).padStart(2, "0")}:${String(secs).padStart(2, "0")}`;
|
|
9
|
+
}
|
|
10
|
+
export function useLoadingTimer(active) {
|
|
11
|
+
const [seconds, setSeconds] = useState(0);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!active) {
|
|
14
|
+
const timeoutId = window.setTimeout(() => setSeconds(0), 0);
|
|
15
|
+
return () => window.clearTimeout(timeoutId);
|
|
16
|
+
}
|
|
17
|
+
const resetId = window.setTimeout(() => setSeconds(0), 0);
|
|
18
|
+
const intervalId = window.setInterval(() => {
|
|
19
|
+
setSeconds((prev) => prev + 1);
|
|
20
|
+
}, 1000);
|
|
21
|
+
return () => {
|
|
22
|
+
window.clearTimeout(resetId);
|
|
23
|
+
window.clearInterval(intervalId);
|
|
24
|
+
};
|
|
25
|
+
}, [active]);
|
|
26
|
+
const displaySeconds = active ? seconds : 0;
|
|
27
|
+
return {
|
|
28
|
+
seconds: displaySeconds,
|
|
29
|
+
formatted: formatElapsed(displaySeconds),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Schließen",
|
|
3
|
+
"common.cancel": "Abbrechen",
|
|
4
|
+
"common.loading": "Lädt...",
|
|
5
|
+
"common.search": "Suchen...",
|
|
6
|
+
"common.all": "Alle",
|
|
7
|
+
"common.unknown": "Unbekannt",
|
|
8
|
+
"common.error": "Ein Fehler ist aufgetreten",
|
|
9
|
+
"common.inactive": "Inaktiv",
|
|
10
|
+
"common.active": "Aktiv",
|
|
11
|
+
"common.save": "Speichern",
|
|
12
|
+
"common.download": "Herunterladen",
|
|
13
|
+
"common.continue": "Weiter",
|
|
14
|
+
"common.errorTitle": "Fehler",
|
|
15
|
+
"auth.signIn": "Anmelden",
|
|
16
|
+
"auth.signOut": "Abmelden",
|
|
17
|
+
"auth.required": "Authentifizierung erforderlich",
|
|
18
|
+
"auth.connectRequired": "Verbindung erforderlich",
|
|
19
|
+
"auth.modal.title": "LastBrain Anmeldung",
|
|
20
|
+
"auth.modal.subtitle": "Melde dich an, um KI-Komponenten in deiner App zu aktivieren.",
|
|
21
|
+
"auth.modal.email": "E-Mail",
|
|
22
|
+
"auth.modal.password": "Passwort",
|
|
23
|
+
"auth.modal.connecting": "Anmeldung...",
|
|
24
|
+
"auth.modal.createAccount": "Konto erstellen",
|
|
25
|
+
"status.title": "API-Status",
|
|
26
|
+
"status.view": "Status anzeigen",
|
|
27
|
+
"status.selectApiKey": "API-Schlüssel wählen",
|
|
28
|
+
"status.user": "Benutzer",
|
|
29
|
+
"status.apiKey": "API-Schlüssel",
|
|
30
|
+
"status.env": "Umgebung",
|
|
31
|
+
"status.rateLimit": "Rate Limit",
|
|
32
|
+
"status.auth": "Auth",
|
|
33
|
+
"status.wallet": "Wallet",
|
|
34
|
+
"status.storage": "Speicher",
|
|
35
|
+
"status.total": "Gesamt",
|
|
36
|
+
"status.changeApiKey": "API-Schlüssel wechseln",
|
|
37
|
+
"status.dashboard": "Dashboard",
|
|
38
|
+
"status.history": "Verlauf",
|
|
39
|
+
"status.settings": "Einstellungen",
|
|
40
|
+
"status.prompts": "Prompts",
|
|
41
|
+
"status.folders": "Ordner",
|
|
42
|
+
"status.logout": "Abmelden",
|
|
43
|
+
"prompt.modal.title": "KI Prompt Konfiguration",
|
|
44
|
+
"prompt.modal.aiModel": "KI-Modell",
|
|
45
|
+
"prompt.modal.manageModels": "Modelle verwalten",
|
|
46
|
+
"prompt.modal.loadingModels": "Modelle werden geladen...",
|
|
47
|
+
"prompt.modal.prompt": "Prompt",
|
|
48
|
+
"prompt.modal.browsePrompts": "Prompts durchsuchen",
|
|
49
|
+
"prompt.modal.cancel": "Abbrechen",
|
|
50
|
+
"prompt.modal.generate": "Mit KI generieren",
|
|
51
|
+
"prompt.modal.generating": "Generierung...",
|
|
52
|
+
"prompt.modal.transforming": "Transformation...",
|
|
53
|
+
"ai.setup": "KI einrichten",
|
|
54
|
+
"ai.generate": "Mit KI generieren",
|
|
55
|
+
"ai.loading.elapsed": "{seconds}",
|
|
56
|
+
"ai.generationSuccess": "KI-Generierung erfolgreich",
|
|
57
|
+
"ai.generationError": "Textgenerierung fehlgeschlagen",
|
|
58
|
+
"ai.image.generate": "Bild generieren",
|
|
59
|
+
"ai.image.generating": "Generierung...",
|
|
60
|
+
"ai.image.generatedSuccess": "Bild erfolgreich generiert",
|
|
61
|
+
"usage.toast.used": "{amount}$ verwendet"
|
|
62
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Close",
|
|
3
|
+
"common.cancel": "Cancel",
|
|
4
|
+
"common.loading": "Loading...",
|
|
5
|
+
"common.search": "Search...",
|
|
6
|
+
"common.all": "All",
|
|
7
|
+
"common.unknown": "Unknown",
|
|
8
|
+
"common.error": "An error occurred",
|
|
9
|
+
"common.inactive": "Inactive",
|
|
10
|
+
"common.active": "Active",
|
|
11
|
+
"common.save": "Save",
|
|
12
|
+
"common.download": "Download",
|
|
13
|
+
"common.continue": "Continue",
|
|
14
|
+
"common.errorTitle": "Error",
|
|
15
|
+
"common.result": "Result",
|
|
16
|
+
"common.promptUsed": "Prompt used",
|
|
17
|
+
"common.closeLabel": "Close",
|
|
18
|
+
"auth.signIn": "Sign in",
|
|
19
|
+
"auth.signOut": "Sign out",
|
|
20
|
+
"auth.required": "Authentication required",
|
|
21
|
+
"auth.connectRequired": "Connection required",
|
|
22
|
+
"auth.connectToUseAi": "Sign in to use AI",
|
|
23
|
+
"auth.modal.title": "LastBrain Sign In",
|
|
24
|
+
"auth.modal.subtitle": "Sign in to enable AI components in your app.",
|
|
25
|
+
"auth.modal.email": "Email",
|
|
26
|
+
"auth.modal.password": "Password",
|
|
27
|
+
"auth.modal.emailPlaceholder": "your@email.com",
|
|
28
|
+
"auth.modal.passwordPlaceholder": "••••••••",
|
|
29
|
+
"auth.modal.connecting": "Signing in...",
|
|
30
|
+
"auth.modal.createAccount": "Create account",
|
|
31
|
+
"auth.modal.loginFailed": "Login failed",
|
|
32
|
+
"auth.modal.tokenMissing": "Access token unavailable",
|
|
33
|
+
"auth.modal.apiKeysFetchError": "Failed to fetch API keys",
|
|
34
|
+
"auth.modal.selectionError": "Selection error",
|
|
35
|
+
"auth.modal.genericError": "An error occurred",
|
|
36
|
+
"status.title": "API Status",
|
|
37
|
+
"status.view": "View status",
|
|
38
|
+
"status.selectApiKey": "Select an API key",
|
|
39
|
+
"status.user": "User",
|
|
40
|
+
"status.apiKey": "API Key",
|
|
41
|
+
"status.env": "Env",
|
|
42
|
+
"status.rateLimit": "Rate Limit",
|
|
43
|
+
"status.auth": "Auth",
|
|
44
|
+
"status.wallet": "Wallet",
|
|
45
|
+
"status.storage": "Storage",
|
|
46
|
+
"status.total": "Total",
|
|
47
|
+
"status.unknown": "unknown",
|
|
48
|
+
"status.changeApiKey": "Switch API key",
|
|
49
|
+
"status.selectApiKeySubtitle": "Choose the API key to use for your AI requests.",
|
|
50
|
+
"status.lastbrainAuth": "LastBrain Authentication",
|
|
51
|
+
"status.connectToAccess": "Sign in to access AI features.",
|
|
52
|
+
"status.dashboard": "Dashboard",
|
|
53
|
+
"status.history": "History",
|
|
54
|
+
"status.settings": "Settings",
|
|
55
|
+
"status.prompts": "Prompts",
|
|
56
|
+
"status.folders": "Folders",
|
|
57
|
+
"status.logout": "Logout",
|
|
58
|
+
"status.aiStatusAria": "AI status",
|
|
59
|
+
"prompt.modal.title": "AI Prompt Configuration",
|
|
60
|
+
"prompt.modal.selectPrompt": "Select a Prompt",
|
|
61
|
+
"prompt.modal.sourceText": "Source Text",
|
|
62
|
+
"prompt.modal.aiModel": "AI Model",
|
|
63
|
+
"prompt.modal.manageModels": "Manage models",
|
|
64
|
+
"prompt.modal.noActiveModels": "No active models. Open 'Manage models'.",
|
|
65
|
+
"prompt.modal.loadingModels": "Loading models...",
|
|
66
|
+
"prompt.modal.prompt": "Prompt",
|
|
67
|
+
"prompt.modal.promptHint": "(Cmd/Ctrl + Enter to submit)",
|
|
68
|
+
"prompt.modal.browsePrompts": "Browse Prompts",
|
|
69
|
+
"prompt.modal.promptPlaceholderWithSource": "Enter your AI prompt... e.g., 'Fix grammar', 'Make it more professional', 'Translate to English'",
|
|
70
|
+
"prompt.modal.promptPlaceholderNoSource": "Enter your AI prompt... e.g., 'Write a blog post about AI', 'Generate product description'",
|
|
71
|
+
"prompt.modal.backToForm": "← Back to form",
|
|
72
|
+
"prompt.modal.searchPrompts": "Search prompts...",
|
|
73
|
+
"prompt.modal.tags": "Tags",
|
|
74
|
+
"prompt.modal.noPrompts": "No prompts available for this model type",
|
|
75
|
+
"prompt.modal.favorites": "Favorites",
|
|
76
|
+
"prompt.modal.allPrompts": "All prompts",
|
|
77
|
+
"prompt.modal.cancel": "Cancel",
|
|
78
|
+
"prompt.modal.generate": "Generate with AI",
|
|
79
|
+
"prompt.modal.transform": "Transform with AI",
|
|
80
|
+
"prompt.modal.generating": "Generating...",
|
|
81
|
+
"prompt.modal.transforming": "Transforming...",
|
|
82
|
+
"prompt.modal.modelMgmtTitle": "AI Model Management",
|
|
83
|
+
"prompt.modal.modelMgmtSubtitle": "Enable or disable models based on your needs",
|
|
84
|
+
"prompt.modal.modelAvailableCount": "{available} models available • {active} enabled",
|
|
85
|
+
"prompt.modal.searchModel": "Search a model...",
|
|
86
|
+
"prompt.modal.noModelMatch": "No model matches your search",
|
|
87
|
+
"prompt.modal.noModelAvailable": "No models available",
|
|
88
|
+
"prompt.modal.closeModelMgmt": "Close",
|
|
89
|
+
"prompt.modal.clickSettingsHint": "Click ⚙️ to enable/disable models",
|
|
90
|
+
"prompt.modal.showOnlyTagsFormat": "Reply only with comma-separated tags.",
|
|
91
|
+
"prompt.modal.backToFormNoArrow": "Back to form",
|
|
92
|
+
"ai.setup": "Setup AI",
|
|
93
|
+
"ai.generate": "Generate with AI",
|
|
94
|
+
"ai.loading.elapsed": "{seconds}",
|
|
95
|
+
"ai.generationSuccess": "AI generation successful",
|
|
96
|
+
"ai.generationError": "Failed to generate text",
|
|
97
|
+
"ai.analyze": "Analyze with AI",
|
|
98
|
+
"ai.analyzing": "Analyzing...",
|
|
99
|
+
"ai.analysisDoneCost": "Analysis completed - Cost: {cost}",
|
|
100
|
+
"ai.image.generate": "Generate image",
|
|
101
|
+
"ai.image.generating": "Generating...",
|
|
102
|
+
"ai.image.generatedSuccess": "Image generated successfully",
|
|
103
|
+
"ai.image.savedSuccess": "Image saved",
|
|
104
|
+
"ai.image.saveError": "Error while saving",
|
|
105
|
+
"ai.image.download": "Download image",
|
|
106
|
+
"ai.image.saveToDb": "Save to database",
|
|
107
|
+
"ai.context.description": "Data to analyze",
|
|
108
|
+
"ai.context.resultTitle": "Analysis result",
|
|
109
|
+
"ai.context.saveFileNamePrompt": "File name:",
|
|
110
|
+
"ai.context.fileNameBase": "analysis-{date}.txt",
|
|
111
|
+
"ai.context.fileHeader": "DATA ANALYSIS",
|
|
112
|
+
"ai.context.metadata": "METADATA",
|
|
113
|
+
"ai.context.tokensUsed": "Tokens used",
|
|
114
|
+
"ai.context.requestId": "Request ID",
|
|
115
|
+
"ai.context.cost": "Cost",
|
|
116
|
+
"ai.context.analyzeStructured": "Analyze this data and respond in a clear, structured way.",
|
|
117
|
+
"ai.context.buttonAnalyze": "Analyze",
|
|
118
|
+
"ai.chips.placeholder": "Type and press Enter to add tags...",
|
|
119
|
+
"ai.chips.generate": "Generate tags with AI",
|
|
120
|
+
"ai.chips.remove": "Remove",
|
|
121
|
+
"ai.chips.artifactTitle": "AI generated tags",
|
|
122
|
+
"ai.select.modelPlaceholder": "Select a model",
|
|
123
|
+
"ai.select.suggestionReady": "AI suggestion ready",
|
|
124
|
+
"lb.keypicker.changeApiKey": "Switch API key",
|
|
125
|
+
"lb.keypicker.loadError": "Unable to load API keys",
|
|
126
|
+
"lb.keypicker.switchError": "Failed to switch API key",
|
|
127
|
+
"usage.toast.used": "{amount}$ used"
|
|
128
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Cerrar",
|
|
3
|
+
"common.cancel": "Cancelar",
|
|
4
|
+
"common.loading": "Cargando...",
|
|
5
|
+
"common.search": "Buscar...",
|
|
6
|
+
"common.all": "Todos",
|
|
7
|
+
"common.unknown": "Desconocido",
|
|
8
|
+
"common.error": "Ocurrió un error",
|
|
9
|
+
"common.inactive": "Inactivo",
|
|
10
|
+
"common.active": "Activo",
|
|
11
|
+
"common.save": "Guardar",
|
|
12
|
+
"common.download": "Descargar",
|
|
13
|
+
"common.continue": "Continuar",
|
|
14
|
+
"common.errorTitle": "Error",
|
|
15
|
+
"common.result": "Resultado",
|
|
16
|
+
"common.promptUsed": "Prompt usado",
|
|
17
|
+
"common.closeLabel": "Cerrar",
|
|
18
|
+
"auth.signIn": "Iniciar sesión",
|
|
19
|
+
"auth.signOut": "Cerrar sesión",
|
|
20
|
+
"auth.required": "Autenticación requerida",
|
|
21
|
+
"auth.connectRequired": "Conexión requerida",
|
|
22
|
+
"auth.connectToUseAi": "Inicia sesión para usar IA",
|
|
23
|
+
"auth.modal.title": "Inicio de sesión LastBrain",
|
|
24
|
+
"auth.modal.subtitle": "Inicia sesión para activar los componentes IA en tu app.",
|
|
25
|
+
"auth.modal.email": "Correo",
|
|
26
|
+
"auth.modal.password": "Contraseña",
|
|
27
|
+
"auth.modal.emailPlaceholder": "tu@email.com",
|
|
28
|
+
"auth.modal.passwordPlaceholder": "••••••••",
|
|
29
|
+
"auth.modal.connecting": "Conectando...",
|
|
30
|
+
"auth.modal.createAccount": "Crear cuenta",
|
|
31
|
+
"status.title": "Estado API",
|
|
32
|
+
"status.view": "Ver estado",
|
|
33
|
+
"status.selectApiKey": "Seleccionar clave API",
|
|
34
|
+
"status.user": "Usuario",
|
|
35
|
+
"status.apiKey": "Clave API",
|
|
36
|
+
"status.env": "Entorno",
|
|
37
|
+
"status.rateLimit": "Límite",
|
|
38
|
+
"status.auth": "Auth",
|
|
39
|
+
"status.wallet": "Billetera",
|
|
40
|
+
"status.storage": "Almacenamiento",
|
|
41
|
+
"status.total": "Total",
|
|
42
|
+
"status.changeApiKey": "Cambiar clave API",
|
|
43
|
+
"status.dashboard": "Panel",
|
|
44
|
+
"status.history": "Historial",
|
|
45
|
+
"status.settings": "Ajustes",
|
|
46
|
+
"status.prompts": "Prompts",
|
|
47
|
+
"status.folders": "Carpetas",
|
|
48
|
+
"status.logout": "Cerrar sesión",
|
|
49
|
+
"status.lastbrainAuth": "Autenticación LastBrain",
|
|
50
|
+
"status.connectToAccess": "Inicia sesión para acceder a funciones IA",
|
|
51
|
+
"prompt.modal.title": "Configuración de Prompt IA",
|
|
52
|
+
"prompt.modal.aiModel": "Modelo IA",
|
|
53
|
+
"prompt.modal.manageModels": "Gestionar modelos",
|
|
54
|
+
"prompt.modal.loadingModels": "Cargando modelos...",
|
|
55
|
+
"prompt.modal.prompt": "Prompt",
|
|
56
|
+
"prompt.modal.browsePrompts": "Ver prompts",
|
|
57
|
+
"prompt.modal.cancel": "Cancelar",
|
|
58
|
+
"prompt.modal.generate": "Generar con IA",
|
|
59
|
+
"prompt.modal.generating": "Generando...",
|
|
60
|
+
"prompt.modal.transforming": "Transformando...",
|
|
61
|
+
"ai.setup": "Configurar IA",
|
|
62
|
+
"ai.generate": "Generar con IA",
|
|
63
|
+
"ai.loading.elapsed": "{seconds}",
|
|
64
|
+
"ai.generationSuccess": "Generación IA completada",
|
|
65
|
+
"ai.generationError": "Error al generar texto",
|
|
66
|
+
"ai.image.generate": "Generar imagen",
|
|
67
|
+
"ai.image.generating": "Generando...",
|
|
68
|
+
"ai.image.generatedSuccess": "Imagen generada correctamente",
|
|
69
|
+
"usage.toast.used": "{amount}$ usado"
|
|
70
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Fermer",
|
|
3
|
+
"common.cancel": "Annuler",
|
|
4
|
+
"common.loading": "Chargement...",
|
|
5
|
+
"common.search": "Rechercher...",
|
|
6
|
+
"common.all": "Tous",
|
|
7
|
+
"common.unknown": "Inconnu",
|
|
8
|
+
"common.error": "Une erreur s'est produite",
|
|
9
|
+
"common.inactive": "Inactif",
|
|
10
|
+
"common.active": "Actif",
|
|
11
|
+
"common.save": "Sauvegarder",
|
|
12
|
+
"common.download": "Télécharger",
|
|
13
|
+
"common.continue": "Continuer",
|
|
14
|
+
"common.errorTitle": "Erreur",
|
|
15
|
+
"common.result": "Résultat",
|
|
16
|
+
"common.promptUsed": "Prompt utilisé",
|
|
17
|
+
"common.closeLabel": "Fermer",
|
|
18
|
+
"auth.signIn": "Se connecter",
|
|
19
|
+
"auth.signOut": "Déconnexion",
|
|
20
|
+
"auth.required": "Authentification requise",
|
|
21
|
+
"auth.connectRequired": "Connexion requise",
|
|
22
|
+
"auth.connectToUseAi": "Se connecter pour utiliser l'IA",
|
|
23
|
+
"auth.modal.title": "Connexion LastBrain",
|
|
24
|
+
"auth.modal.subtitle": "Connectez-vous pour activer les composants IA dans votre app.",
|
|
25
|
+
"auth.modal.email": "Email",
|
|
26
|
+
"auth.modal.password": "Mot de passe",
|
|
27
|
+
"auth.modal.emailPlaceholder": "votre@email.com",
|
|
28
|
+
"auth.modal.passwordPlaceholder": "••••••••",
|
|
29
|
+
"auth.modal.connecting": "Connexion...",
|
|
30
|
+
"auth.modal.createAccount": "Créer un compte",
|
|
31
|
+
"auth.modal.loginFailed": "Échec de la connexion",
|
|
32
|
+
"auth.modal.tokenMissing": "Token d'accès non disponible",
|
|
33
|
+
"auth.modal.apiKeysFetchError": "Erreur lors de la récupération des clés API",
|
|
34
|
+
"auth.modal.selectionError": "Erreur lors de la sélection",
|
|
35
|
+
"auth.modal.genericError": "Une erreur s'est produite",
|
|
36
|
+
"status.title": "Statut API",
|
|
37
|
+
"status.view": "Voir le statut",
|
|
38
|
+
"status.selectApiKey": "Sélectionnez une clé API",
|
|
39
|
+
"status.user": "Utilisateur",
|
|
40
|
+
"status.apiKey": "API Key",
|
|
41
|
+
"status.env": "Env",
|
|
42
|
+
"status.rateLimit": "Rate Limit",
|
|
43
|
+
"status.auth": "Auth",
|
|
44
|
+
"status.wallet": "Portefeuille",
|
|
45
|
+
"status.storage": "Stockage",
|
|
46
|
+
"status.total": "Total",
|
|
47
|
+
"status.unknown": "unknown",
|
|
48
|
+
"status.changeApiKey": "Changer de clé API",
|
|
49
|
+
"status.selectApiKeySubtitle": "Choisissez la clé API à utiliser pour vos requêtes IA.",
|
|
50
|
+
"status.lastbrainAuth": "LastBrain Authentication",
|
|
51
|
+
"status.connectToAccess": "Connectez-vous pour accéder aux fonctionnalités IA.",
|
|
52
|
+
"status.dashboard": "Dashboard",
|
|
53
|
+
"status.history": "Historique",
|
|
54
|
+
"status.settings": "Paramètres",
|
|
55
|
+
"status.prompts": "Prompts",
|
|
56
|
+
"status.folders": "Dossiers",
|
|
57
|
+
"status.logout": "Déconnexion",
|
|
58
|
+
"status.aiStatusAria": "Statut IA",
|
|
59
|
+
"prompt.modal.title": "AI Prompt Configuration",
|
|
60
|
+
"prompt.modal.selectPrompt": "Sélectionner un prompt",
|
|
61
|
+
"prompt.modal.sourceText": "Texte source",
|
|
62
|
+
"prompt.modal.aiModel": "Modèle IA",
|
|
63
|
+
"prompt.modal.manageModels": "Gérer les modèles",
|
|
64
|
+
"prompt.modal.noActiveModels": "Aucun modèle actif. Ouvrez 'Gérer les modèles'.",
|
|
65
|
+
"prompt.modal.loadingModels": "Chargement des modèles...",
|
|
66
|
+
"prompt.modal.prompt": "Prompt",
|
|
67
|
+
"prompt.modal.promptHint": "(Cmd/Ctrl + Enter pour envoyer)",
|
|
68
|
+
"prompt.modal.browsePrompts": "Parcourir les prompts",
|
|
69
|
+
"prompt.modal.promptPlaceholderWithSource": "Entrez votre prompt IA... ex: 'Corrige la grammaire', 'Rends le texte plus pro', 'Traduis en anglais'",
|
|
70
|
+
"prompt.modal.promptPlaceholderNoSource": "Entrez votre prompt IA... ex: 'Écris un article sur l'IA', 'Génère une description produit'",
|
|
71
|
+
"prompt.modal.backToForm": "← Retour au formulaire",
|
|
72
|
+
"prompt.modal.searchPrompts": "Rechercher des prompts...",
|
|
73
|
+
"prompt.modal.tags": "Tags",
|
|
74
|
+
"prompt.modal.noPrompts": "Aucun prompt disponible pour ce type de modèle",
|
|
75
|
+
"prompt.modal.favorites": "Favoris",
|
|
76
|
+
"prompt.modal.allPrompts": "Tous les prompts",
|
|
77
|
+
"prompt.modal.cancel": "Annuler",
|
|
78
|
+
"prompt.modal.generate": "Générer avec IA",
|
|
79
|
+
"prompt.modal.transform": "Transformer avec IA",
|
|
80
|
+
"prompt.modal.generating": "Génération en cours...",
|
|
81
|
+
"prompt.modal.transforming": "Transformation en cours...",
|
|
82
|
+
"prompt.modal.modelMgmtTitle": "Gestion des modèles IA",
|
|
83
|
+
"prompt.modal.modelMgmtSubtitle": "Activez ou désactivez les modèles selon vos besoins",
|
|
84
|
+
"prompt.modal.modelAvailableCount": "{available} modèles disponibles • {active} activés",
|
|
85
|
+
"prompt.modal.searchModel": "Rechercher un modèle...",
|
|
86
|
+
"prompt.modal.noModelMatch": "Aucun modèle ne correspond à votre recherche",
|
|
87
|
+
"prompt.modal.noModelAvailable": "Aucun modèle disponible",
|
|
88
|
+
"prompt.modal.closeModelMgmt": "Fermer",
|
|
89
|
+
"prompt.modal.clickSettingsHint": "Cliquez sur ⚙️ pour activer/désactiver les modèles",
|
|
90
|
+
"prompt.modal.showOnlyTagsFormat": "Répondez uniquement avec des tags séparés par des virgules.",
|
|
91
|
+
"prompt.modal.backToFormNoArrow": "Retour au formulaire",
|
|
92
|
+
"ai.setup": "Configurer l'IA",
|
|
93
|
+
"ai.generate": "Générer avec IA",
|
|
94
|
+
"ai.loading.elapsed": "{seconds}",
|
|
95
|
+
"ai.generationSuccess": "Génération IA réussie",
|
|
96
|
+
"ai.generationError": "Échec de la génération de texte",
|
|
97
|
+
"ai.analyze": "Analyser avec l'IA",
|
|
98
|
+
"ai.analyzing": "Analyse...",
|
|
99
|
+
"ai.analysisDoneCost": "Analyse terminée - Coût: {cost}",
|
|
100
|
+
"ai.image.generate": "Générer une image",
|
|
101
|
+
"ai.image.generating": "Génération...",
|
|
102
|
+
"ai.image.generatedSuccess": "Image générée avec succès",
|
|
103
|
+
"ai.image.savedSuccess": "Image sauvegardée",
|
|
104
|
+
"ai.image.saveError": "Erreur lors de la sauvegarde",
|
|
105
|
+
"ai.image.download": "Télécharger l'image",
|
|
106
|
+
"ai.image.saveToDb": "Sauvegarder en base",
|
|
107
|
+
"ai.context.description": "Données à analyser",
|
|
108
|
+
"ai.context.resultTitle": "Résultat de l'analyse",
|
|
109
|
+
"ai.context.saveFileNamePrompt": "Nom du fichier :",
|
|
110
|
+
"ai.context.fileNameBase": "analyse-{date}.txt",
|
|
111
|
+
"ai.context.fileHeader": "ANALYSE DES DONNÉES",
|
|
112
|
+
"ai.context.metadata": "MÉTADONNÉES",
|
|
113
|
+
"ai.context.tokensUsed": "Tokens utilisés",
|
|
114
|
+
"ai.context.requestId": "ID de requête",
|
|
115
|
+
"ai.context.cost": "Coût",
|
|
116
|
+
"ai.context.analyzeStructured": "Analyse ces données et réponds de manière structurée et claire.",
|
|
117
|
+
"ai.context.buttonAnalyze": "Analyser",
|
|
118
|
+
"ai.chips.placeholder": "Tapez et appuyez sur Entrée pour ajouter des tags...",
|
|
119
|
+
"ai.chips.generate": "Générer des tags avec l'IA",
|
|
120
|
+
"ai.chips.remove": "Supprimer",
|
|
121
|
+
"ai.chips.artifactTitle": "Tags générés par IA",
|
|
122
|
+
"ai.select.modelPlaceholder": "Sélectionner un modèle",
|
|
123
|
+
"ai.select.suggestionReady": "Suggestion IA prête",
|
|
124
|
+
"lb.keypicker.changeApiKey": "Changer de clé API",
|
|
125
|
+
"lb.keypicker.loadError": "Impossible de charger les clés API",
|
|
126
|
+
"lb.keypicker.switchError": "Échec du changement de clé",
|
|
127
|
+
"usage.toast.used": "{amount}$ utilisé"
|
|
128
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Chiudi",
|
|
3
|
+
"common.cancel": "Annulla",
|
|
4
|
+
"common.loading": "Caricamento...",
|
|
5
|
+
"common.search": "Cerca...",
|
|
6
|
+
"common.all": "Tutti",
|
|
7
|
+
"common.unknown": "Sconosciuto",
|
|
8
|
+
"common.error": "Si è verificato un errore",
|
|
9
|
+
"common.inactive": "Inattivo",
|
|
10
|
+
"common.active": "Attivo",
|
|
11
|
+
"common.save": "Salva",
|
|
12
|
+
"common.download": "Scarica",
|
|
13
|
+
"common.continue": "Continua",
|
|
14
|
+
"common.errorTitle": "Errore",
|
|
15
|
+
"auth.signIn": "Accedi",
|
|
16
|
+
"auth.signOut": "Disconnetti",
|
|
17
|
+
"auth.required": "Autenticazione richiesta",
|
|
18
|
+
"auth.connectRequired": "Connessione richiesta",
|
|
19
|
+
"auth.modal.title": "Accesso LastBrain",
|
|
20
|
+
"auth.modal.subtitle": "Accedi per attivare i componenti IA nella tua app.",
|
|
21
|
+
"auth.modal.email": "Email",
|
|
22
|
+
"auth.modal.password": "Password",
|
|
23
|
+
"auth.modal.connecting": "Accesso in corso...",
|
|
24
|
+
"auth.modal.createAccount": "Crea account",
|
|
25
|
+
"status.title": "Stato API",
|
|
26
|
+
"status.view": "Vedi stato",
|
|
27
|
+
"status.selectApiKey": "Seleziona una chiave API",
|
|
28
|
+
"status.user": "Utente",
|
|
29
|
+
"status.apiKey": "Chiave API",
|
|
30
|
+
"status.env": "Ambiente",
|
|
31
|
+
"status.rateLimit": "Rate Limit",
|
|
32
|
+
"status.auth": "Auth",
|
|
33
|
+
"status.wallet": "Portafoglio",
|
|
34
|
+
"status.storage": "Storage",
|
|
35
|
+
"status.total": "Totale",
|
|
36
|
+
"status.changeApiKey": "Cambia chiave API",
|
|
37
|
+
"status.dashboard": "Dashboard",
|
|
38
|
+
"status.history": "Cronologia",
|
|
39
|
+
"status.settings": "Impostazioni",
|
|
40
|
+
"status.prompts": "Prompt",
|
|
41
|
+
"status.folders": "Cartelle",
|
|
42
|
+
"status.logout": "Disconnetti",
|
|
43
|
+
"prompt.modal.title": "Configurazione Prompt IA",
|
|
44
|
+
"prompt.modal.aiModel": "Modello IA",
|
|
45
|
+
"prompt.modal.manageModels": "Gestisci modelli",
|
|
46
|
+
"prompt.modal.loadingModels": "Caricamento modelli...",
|
|
47
|
+
"prompt.modal.prompt": "Prompt",
|
|
48
|
+
"prompt.modal.browsePrompts": "Sfoglia prompt",
|
|
49
|
+
"prompt.modal.cancel": "Annulla",
|
|
50
|
+
"prompt.modal.generate": "Genera con IA",
|
|
51
|
+
"prompt.modal.generating": "Generazione...",
|
|
52
|
+
"prompt.modal.transforming": "Trasformazione...",
|
|
53
|
+
"ai.setup": "Configura IA",
|
|
54
|
+
"ai.generate": "Genera con IA",
|
|
55
|
+
"ai.loading.elapsed": "{seconds}",
|
|
56
|
+
"ai.generationSuccess": "Generazione IA completata",
|
|
57
|
+
"ai.generationError": "Errore durante la generazione del testo",
|
|
58
|
+
"ai.image.generate": "Genera immagine",
|
|
59
|
+
"ai.image.generating": "Generazione...",
|
|
60
|
+
"ai.image.generatedSuccess": "Immagine generata con successo",
|
|
61
|
+
"usage.toast.used": "{amount}$ usati"
|
|
62
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.close": "Fechar",
|
|
3
|
+
"common.cancel": "Cancelar",
|
|
4
|
+
"common.loading": "Carregando...",
|
|
5
|
+
"common.search": "Pesquisar...",
|
|
6
|
+
"common.all": "Todos",
|
|
7
|
+
"common.unknown": "Desconhecido",
|
|
8
|
+
"common.error": "Ocorreu um erro",
|
|
9
|
+
"common.inactive": "Inativo",
|
|
10
|
+
"common.active": "Ativo",
|
|
11
|
+
"common.save": "Salvar",
|
|
12
|
+
"common.download": "Baixar",
|
|
13
|
+
"common.continue": "Continuar",
|
|
14
|
+
"common.errorTitle": "Erro",
|
|
15
|
+
"auth.signIn": "Entrar",
|
|
16
|
+
"auth.signOut": "Sair",
|
|
17
|
+
"auth.required": "Autenticação obrigatória",
|
|
18
|
+
"auth.connectRequired": "Conexão obrigatória",
|
|
19
|
+
"auth.modal.title": "Login LastBrain",
|
|
20
|
+
"auth.modal.subtitle": "Entre para ativar os componentes de IA no seu app.",
|
|
21
|
+
"auth.modal.email": "Email",
|
|
22
|
+
"auth.modal.password": "Senha",
|
|
23
|
+
"auth.modal.connecting": "Entrando...",
|
|
24
|
+
"auth.modal.createAccount": "Criar conta",
|
|
25
|
+
"status.title": "Status da API",
|
|
26
|
+
"status.view": "Ver status",
|
|
27
|
+
"status.selectApiKey": "Selecionar chave API",
|
|
28
|
+
"status.user": "Usuário",
|
|
29
|
+
"status.apiKey": "Chave API",
|
|
30
|
+
"status.env": "Ambiente",
|
|
31
|
+
"status.rateLimit": "Limite",
|
|
32
|
+
"status.auth": "Auth",
|
|
33
|
+
"status.wallet": "Carteira",
|
|
34
|
+
"status.storage": "Armazenamento",
|
|
35
|
+
"status.total": "Total",
|
|
36
|
+
"status.changeApiKey": "Trocar chave API",
|
|
37
|
+
"status.dashboard": "Painel",
|
|
38
|
+
"status.history": "Histórico",
|
|
39
|
+
"status.settings": "Configurações",
|
|
40
|
+
"status.prompts": "Prompts",
|
|
41
|
+
"status.folders": "Pastas",
|
|
42
|
+
"status.logout": "Sair",
|
|
43
|
+
"prompt.modal.title": "Configuração de Prompt IA",
|
|
44
|
+
"prompt.modal.aiModel": "Modelo IA",
|
|
45
|
+
"prompt.modal.manageModels": "Gerenciar modelos",
|
|
46
|
+
"prompt.modal.loadingModels": "Carregando modelos...",
|
|
47
|
+
"prompt.modal.prompt": "Prompt",
|
|
48
|
+
"prompt.modal.browsePrompts": "Ver prompts",
|
|
49
|
+
"prompt.modal.cancel": "Cancelar",
|
|
50
|
+
"prompt.modal.generate": "Gerar com IA",
|
|
51
|
+
"prompt.modal.generating": "Gerando...",
|
|
52
|
+
"prompt.modal.transforming": "Transformando...",
|
|
53
|
+
"ai.setup": "Configurar IA",
|
|
54
|
+
"ai.generate": "Gerar com IA",
|
|
55
|
+
"ai.loading.elapsed": "{seconds}",
|
|
56
|
+
"ai.generationSuccess": "Geração de IA concluída",
|
|
57
|
+
"ai.generationError": "Falha ao gerar texto",
|
|
58
|
+
"ai.image.generate": "Gerar imagem",
|
|
59
|
+
"ai.image.generating": "Gerando...",
|
|
60
|
+
"ai.image.generatedSuccess": "Imagem gerada com sucesso",
|
|
61
|
+
"usage.toast.used": "{amount}$ usado"
|
|
62
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import "./styles.css";
|
|
|
2
2
|
export * from "./types";
|
|
3
3
|
export * from "./context/AiProvider";
|
|
4
4
|
export * from "./context/LBAuthProvider";
|
|
5
|
+
export * from "./context/I18nContext";
|
|
5
6
|
export * from "./hooks/useAiClient";
|
|
6
7
|
export * from "./hooks/useAiModels";
|
|
7
8
|
export * from "./hooks/useAiStatus";
|
|
@@ -10,6 +11,7 @@ export * from "./hooks/useAiCallImage";
|
|
|
10
11
|
export * from "./hooks/usePrompts";
|
|
11
12
|
export * from "./hooks/useModelManagement";
|
|
12
13
|
export * from "./hooks/useLB";
|
|
14
|
+
export * from "./hooks/useLoadingTimer";
|
|
13
15
|
export * from "./components/AiPromptPanel";
|
|
14
16
|
export * from "./components/AiModelSelect";
|
|
15
17
|
export * from "./components/AiInput";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,cAAc,SAAS,CAAC;AAGxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAGtB,cAAc,SAAS,CAAC;AAGxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AAGxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAG9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./types";
|
|
|
4
4
|
// Context
|
|
5
5
|
export * from "./context/AiProvider";
|
|
6
6
|
export * from "./context/LBAuthProvider";
|
|
7
|
+
export * from "./context/I18nContext";
|
|
7
8
|
// Hooks
|
|
8
9
|
export * from "./hooks/useAiClient";
|
|
9
10
|
export * from "./hooks/useAiModels";
|
|
@@ -13,6 +14,7 @@ export * from "./hooks/useAiCallImage";
|
|
|
13
14
|
export * from "./hooks/usePrompts";
|
|
14
15
|
export * from "./hooks/useModelManagement";
|
|
15
16
|
export * from "./hooks/useLB";
|
|
17
|
+
export * from "./hooks/useLoadingTimer";
|
|
16
18
|
// Components
|
|
17
19
|
export * from "./components/AiPromptPanel";
|
|
18
20
|
export * from "./components/AiModelSelect";
|