refactor: rename project Lyria Studio → Kithara Studio
- App name, UI text, page titles → Kithara Studio - Python module: lyria_client.py → kithara_client.py - Tailwind color classes: lyria-* → kithara-* - CSS custom properties: --lyria-* → --kithara-* - Database: lyria.db → kithara.db - Package name: kithara-studio-frontend - localStorage key: kithara-saved-searches - Add project logo (lyre icon, black on transparent, invert via CSS) Preserved as Google's property: - LYRIA_API_KEY, LYRIA_BASE_URL, LYRIA_DEFAULT_MODEL env vars - LYRIA_MODELS dict and model IDs (lyria-3-clip-preview, lyria-3-pro-preview) - Google Lyria API references in error messages and docstrings
This commit is contained in:
1 parent
6c1e1b4509
commit
816f8fbd2f
20 files changed
+191
-193
No files matched your search
@@ -164,7 +164,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<span className="text-sm font-medium text-white">{title}</span>
|
||||
</div>
|
||||
<svg
|
||||
className={`w-4 h-4 text-lyria-muted transition-transform ${gen.expanded ? 'rotate-180' : ''}`}
|
||||
className={`w-4 h-4 text-kithara-muted transition-transform ${gen.expanded ? 'rotate-180' : ''}`}
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
viewBox="0 0 24 24"
|
||||
@@ -177,9 +177,9 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<div className="p-4 space-y-4">
|
||||
{/* Model Selection */}
|
||||
<div>
|
||||
<label className="block text-xs text-lyria-muted mb-1.5">Model</label>
|
||||
<label className="block text-xs text-kithara-muted mb-1.5">Model</label>
|
||||
<select
|
||||
className="w-full bg-black/30 border border-white/10 rounded-md px-3 py-2 text-sm text-white focus:outline-none focus:border-lyria-accent"
|
||||
className="w-full bg-black/30 border border-white/10 rounded-md px-3 py-2 text-sm text-white focus:outline-none focus:border-kithara-accent"
|
||||
value={gen.getValue('model')}
|
||||
onChange={(e) => gen.update('model', e.target.value)}
|
||||
>
|
||||
@@ -194,7 +194,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
{/* API Key Status */}
|
||||
<div className="flex items-center gap-2">
|
||||
<div className={`w-2 h-2 rounded-full ${gen.config?.has_api_key ? 'bg-green-400' : 'bg-red-400'}`} />
|
||||
<span className="text-xs text-lyria-muted">
|
||||
<span className="text-xs text-kithara-muted">
|
||||
{gen.config?.has_api_key ? 'API key configured' : 'No API key — set in .env'}
|
||||
</span>
|
||||
</div>
|
||||
@@ -209,9 +209,9 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
{ key: 'safety_dangerous', label: 'Dangerous Content' },
|
||||
].map(({ key, label }) => (
|
||||
<div key={key}>
|
||||
<label className="block text-xs text-lyria-muted mb-1">{label}</label>
|
||||
<label className="block text-xs text-kithara-muted mb-1">{label}</label>
|
||||
<select
|
||||
className="w-full bg-black/30 border border-white/10 rounded-md px-3 py-1.5 text-sm text-white focus:outline-none focus:border-lyria-accent"
|
||||
className="w-full bg-black/30 border border-white/10 rounded-md px-3 py-1.5 text-sm text-white focus:outline-none focus:border-kithara-accent"
|
||||
value={gen.getValue(key as keyof GenConfig)}
|
||||
onChange={(e) => gen.update(key, e.target.value)}
|
||||
>
|
||||
@@ -228,7 +228,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<button
|
||||
onClick={gen.save}
|
||||
disabled={!gen.hasChanges || gen.saving}
|
||||
className="px-4 py-2 text-sm font-medium rounded-md transition-colors disabled:opacity-50 bg-lyria-accent text-black hover:bg-lyria-accent/90"
|
||||
className="px-4 py-2 text-sm font-medium rounded-md transition-colors disabled:opacity-50 bg-kithara-accent text-black hover:bg-kithara-accent/90"
|
||||
>
|
||||
{gen.saving ? 'Saving...' : 'Save Changes'}
|
||||
</button>
|
||||
@@ -238,7 +238,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<p className="text-xs text-lyria-muted/60">
|
||||
<p className="text-xs text-kithara-muted/60">
|
||||
Changes apply immediately but reset on server restart. Set .env for persistence.
|
||||
</p>
|
||||
</div>
|
||||
@@ -255,13 +255,13 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
/>
|
||||
|
||||
{/* Modal */}
|
||||
<div className="relative bg-lyria-surface border border-white/10 rounded-xl shadow-2xl w-full max-w-md mx-4 overflow-hidden max-h-[80vh] flex flex-col">
|
||||
<div className="relative bg-kithara-surface border border-white/10 rounded-xl shadow-2xl w-full max-w-md mx-4 overflow-hidden max-h-[80vh] flex flex-col">
|
||||
{/* Header */}
|
||||
<div className="flex items-center justify-between px-6 py-4 border-b border-white/10 shrink-0">
|
||||
<h2 className="text-lg font-semibold text-white">Settings</h2>
|
||||
<button
|
||||
onClick={onClose}
|
||||
className="text-lyria-muted hover:text-white transition-colors"
|
||||
className="text-kithara-muted hover:text-white transition-colors"
|
||||
aria-label="Close settings"
|
||||
>
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
@@ -274,14 +274,14 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<div className="px-6 py-5 space-y-6 overflow-y-auto">
|
||||
{/* Image Generation */}
|
||||
{renderGenSection('Image Generation', (
|
||||
<svg className="w-4 h-4 text-lyria-accent" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg className="w-4 h-4 text-kithara-accent" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" />
|
||||
</svg>
|
||||
), imageGen)}
|
||||
|
||||
{/* Text Generation */}
|
||||
{renderGenSection('Text Generation', (
|
||||
<svg className="w-4 h-4 text-lyria-accent" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg className="w-4 h-4 text-kithara-accent" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z" />
|
||||
</svg>
|
||||
), textGen)}
|
||||
@@ -314,7 +314,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="flex-1 min-w-0">
|
||||
<p className="text-sm text-white font-medium">Clear Waveform Cache</p>
|
||||
<p className="text-xs text-lyria-muted mt-0.5">Delete all cached SVGs. They regenerate on next view.</p>
|
||||
<p className="text-xs text-kithara-muted mt-0.5">Delete all cached SVGs. They regenerate on next view.</p>
|
||||
</div>
|
||||
<button
|
||||
onClick={handleClearWaveforms}
|
||||
@@ -331,7 +331,7 @@ export default function SettingsModal({ isOpen, onClose, onClearWaveforms, onDel
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="flex-1 min-w-0">
|
||||
<p className="text-sm text-white font-medium">Delete All Tracks</p>
|
||||
<p className="text-xs text-lyria-muted mt-0.5">
|
||||
<p className="text-xs text-kithara-muted mt-0.5">
|
||||
Remove {clipCount} clip{clipCount !== 1 ? 's' : ''}. Cannot be undone.
|
||||
</p>
|
||||
{confirmDelete && (
|
||||
|
||||
Reference in new issue
Block a user