diff --git a/packages/kbot/dist/win-64/tauri-app.exe b/packages/kbot/dist/win-64/tauri-app.exe index 91823d8b..750134e4 100644 Binary files a/packages/kbot/dist/win-64/tauri-app.exe and b/packages/kbot/dist/win-64/tauri-app.exe differ diff --git a/packages/kbot/generated_gen_0.png b/packages/kbot/generated_gen_0.png new file mode 100644 index 00000000..41bd0c9a Binary files /dev/null and b/packages/kbot/generated_gen_0.png differ diff --git a/packages/kbot/gr.sh b/packages/kbot/gr.sh new file mode 100644 index 00000000..c209a8d2 --- /dev/null +++ b/packages/kbot/gr.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Script to update git remote domain to git.polymech.info +# This script updates the origin remote URL from git.polymech.io to git.polymech.info + +echo "Updating git remote domain to git.polymech.info..." + +# Get current remote URL +current_url=$(git remote get-url origin) +echo "Current remote URL: $current_url" + +# Replace git.polymech.io with git.polymech.info +new_url=$(echo "$current_url" | sed 's/git\.polymech\.io/git.polymech.info/g') +echo "New remote URL: $new_url" + +# Update the remote URL +git remote set-url origin "$new_url" + +# Verify the change +updated_url=$(git remote get-url origin) +echo "Updated remote URL: $updated_url" + +# Test connectivity +echo "Testing connectivity to new remote..." +if git ls-remote origin > /dev/null 2>&1; then + echo "✅ Successfully connected to new remote!" +else + echo "❌ Warning: Could not connect to new remote. Please check the URL and your network connection." +fi + +echo "Git remote update completed!" diff --git a/packages/kbot/gui/tauri-app/i18n/en.json b/packages/kbot/gui/tauri-app/i18n/en.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/packages/kbot/gui/tauri-app/i18n/en.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/scripts/i18n.sh b/packages/kbot/gui/tauri-app/scripts/i18n.sh new file mode 100644 index 00000000..36188960 --- /dev/null +++ b/packages/kbot/gui/tauri-app/scripts/i18n.sh @@ -0,0 +1,7 @@ +osr-i18n translate \ +--srcLang='EN' \ +--dstLang='NL,ES,FR,IT,DE' \ +--debug \ +--createGlossary=false \ +--src='./src/i18n/en.json' \ +--dst='./src/i18n/${DST_LANG}${SRC_EXT}' diff --git a/packages/kbot/gui/tauri-app/scripts/translations.js b/packages/kbot/gui/tauri-app/scripts/translations.js new file mode 100644 index 00000000..7dc11c80 --- /dev/null +++ b/packages/kbot/gui/tauri-app/scripts/translations.js @@ -0,0 +1,51 @@ +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +// Replicate __dirname behavior for ES modules +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const i18nDir = path.join(__dirname, '../i18n'); +const outputDir = path.join(__dirname, '../src'); +const outputFile = path.join(outputDir, 'translations.ts'); + +const allTranslations = {}; + +try { + // Ensure output directory exists + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + const files = fs.readdirSync(i18nDir); + + files.forEach(file => { + if (path.extname(file) === '.json') { + const lang = path.basename(file, '.json'); + const filePath = path.join(i18nDir, file); + const content = fs.readFileSync(filePath, 'utf8'); + try { + allTranslations[lang] = JSON.parse(content); + console.log(`Successfully processed ${file}`); + } catch (parseError) { + console.error(`Error parsing JSON from ${file}:`, parseError); + } + } + }); + + const tsContent = `// Auto-generated by scripts/translations.js +// Do not edit this file manually. +// All changes will be overwritten. + +export const translations: Record = ${JSON.stringify(allTranslations, null, 2)}; +`; + + fs.writeFileSync(outputFile, tsContent, 'utf8'); + console.log(`\nSuccessfully generated TypeScript translations file at ${outputFile}`); + console.log('Included languages:', Object.keys(allTranslations).join(', ')); + +} catch (error) { + console.error('Error generating translations file:', error); + process.exit(1); +} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src/components/Header.tsx b/packages/kbot/gui/tauri-app/src/components/Header.tsx index 306d1f63..91eac115 100644 --- a/packages/kbot/gui/tauri-app/src/components/Header.tsx +++ b/packages/kbot/gui/tauri-app/src/components/Header.tsx @@ -16,10 +16,13 @@ const Header: React.FC = ({ }) => { const navigate = useNavigate(); return ( -
+
{/* Title on its own row */}
-

Image Wizard

+

+ Image + Wizard +

{/* Controls row - single row layout */} @@ -32,7 +35,7 @@ const Header: React.FC = ({ className="glass-button p-2 sm:p-3 rounded-xl hover:shadow-lg transition-all duration-300" title="Toggle Debug Panel" > - + = ({ title={isDarkMode ? 'Switch to Light Mode' : 'Switch to Dark Mode'} > {isDarkMode ? ( - + = ({ /> ) : ( - + )} @@ -69,7 +72,7 @@ const Header: React.FC = ({ className="glass-button p-2 sm:p-3 rounded-xl hover:shadow-lg transition-all duration-300" title="Settings" > - + diff --git a/packages/kbot/gui/tauri-app/src/components/ImageWizard.tsx b/packages/kbot/gui/tauri-app/src/components/ImageWizard.tsx index 7cd09fa6..d2a2d92a 100644 --- a/packages/kbot/gui/tauri-app/src/components/ImageWizard.tsx +++ b/packages/kbot/gui/tauri-app/src/components/ImageWizard.tsx @@ -725,7 +725,7 @@ const ImageWizard: React.FC = ({
-
+
= ({ {/* Error Message Display */} {errorMessage && ( -
+
diff --git a/packages/kbot/gui/tauri-app/src/components/PromptForm.tsx b/packages/kbot/gui/tauri-app/src/components/PromptForm.tsx index fe954ecd..0ae27eb8 100644 --- a/packages/kbot/gui/tauri-app/src/components/PromptForm.tsx +++ b/packages/kbot/gui/tauri-app/src/components/PromptForm.tsx @@ -205,21 +205,18 @@ const PromptForm: React.FC = ({ return (
{ e.preventDefault(); submit(); }} >
- {/* Two-column layout: Prompt + Templates/Actions */} -
- {/* Left column: Prompt area (2/3 width) */} -
- -
+ {/* Two-column layout: Text Input + Action Buttons */} +
+ {/* Left column: Text input area only */} +
+