Commit Graph

110 Commits

Author SHA1 Message Date
04b82e49d8 Add collapsible cards with persistent state (localStorage)
- All .card > h2 cards get a rotating chevron toggle; clicking the h2
  collapses/expands all content below it
- Existing <details> elements inside cards are synced to the same
  localStorage store so their state also persists across reloads
- Default state: expanded (open); first collapse saves false, reload restores it
- Storage key: 'card-collapse-v1' → per-card slug of heading text
- CSS: chevron box matches opt-group style; <details> summary styled consistently

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:25:57 +02:00
9c47b1998d Add container filesystem folder browser to empty voice state
- /api/browse-dirs endpoint lists subdirectories at any container path
- '📁 Browse' button next to the path input toggles an inline dir browser
- Breadcrumb navigation lets users click up/down through the filesystem
- 'Use this folder' confirms the selection back into the path input
- Existing 'Set & reload' flow unchanged

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:21:21 +02:00
7f734b42b6 Move save/import buttons to bottom-right of each card/panel
Inspector opt-groups: Save crop, Save text, Save style variation, Save volume
each moved into an .opt-group-footer div (flex, justify-content: flex-end).

Get Voices scraper cards: Import this voice moved into .vs-import-footer
(full-width row, right-aligned) below the pill/link row.

ElevenLabs cards: ↓ Clone moved into .el-vc-footer (full-width, right-aligned)
with accent fill; ▶ Play stays inline with the body.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:18:05 +02:00
ff783a8ab9 Add ElevenLabs Voice Library browser to Get Voices Online
- Backend proxy at /api/elevenlabs/voices forwarding to ElevenLabs shared-voices API
- elevenlabs_api_key added to settings (free key unlocks 12 000+ voices; 3 without key)
- Category pills: All, Featured, Professional, Narration, Conversational, News, Characters, Meditation, Gaming, Training
- Language filter with most common European languages + Arabic/Hindi/ZH/JA/KO
- Gender and age filters, debounced search, pagination (prev/next)
- Voice cards: colored avatar, name, language/gender/age/use-case tags, description, ▶ Play and ↓ Clone buttons
- Play button streams preview MP3 directly; Clone imports the audio into the Clone a Voice flow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 13:14:40 +02:00
79aaed4b7d Add multilingual preview text picker with resizable textarea
- Preview input changed to a resizable textarea (resize: vertical)
- Flag button before textarea opens searchable language picker (23 languages)
- Selecting a language fills textarea with a pre-translated benchmark sentence
- VL_SAMPLE_TEXTS map covers EN/DE/FR/ES/PT/IT/NL/PL/SV/DA/NB/FI/HU/CS/RO/UK/RU/TR/AR/HI/ZH/JA/KO
- setPreviewLang / openPreviewLangPicker / syncPreviewLangBtn wired up globally

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:49:47 +02:00
ecef913837 Tags: comma-separated + DB autocomplete; collapsible opt-groups; reorder voice list pane
Tags:
- Comma-separated input (tag1, tag2, tag3) with placeholder updated
- Custom autocomplete dropdown on last token, sources from _voices DB + localStorage
- All comma-separated tokens saved individually to localStorage reuse list

Inspector opt-groups:
- Each group wrapped in opt-group-body for clean collapse
- Chevron (▾/▸) in title, click title to toggle open/closed
- Transcript and Loudness open by default; others collapsed
- Loudness title preserves dBFS meta span + chevron

Voice list pane reorder:
- vl-synth-panel moved above vl-filters
- vl-filters now sits directly above voice-list

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 12:02:44 +02:00
28f5ec2e25 Redesign inspector pane, add searchable pickers, and style AI Backends tab
Inspector:
- Skinny 2-row header: 72px avatar + name/ID row / subtitle row / note row
- Searchable flag picker (dblclick flag icon) — filtered by voice language, falls back to ALL_FLAGS
- Searchable language picker (dblclick lang code) — shows full language names
- Tag reuse: entered tags persist to localStorage as datalist suggestions
- Compact active toggle (32×18px), slim save button (12px/4px padding)
- Show/hide eye toggle and "✓ Key saved" badge on API key fields

AI Backends (s-llms.html + style.css):
- Full CSS design: pill tabs with active accent, animated section transitions
- Service cards: icon bubbles, tier badges (Free/Demo/Paid), stat chips, endpoint rows, model tags
- Highlighted recommended card with accent border
- Dark code blocks for local service snippets with copy feedback
- Show/hide password toggle and auto-appearing "✓ Key saved" badge per card

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 11:23:27 +02:00
6583a9fc80 Update voice library UI: convert table layout to card grid, change network to dgx_net 2026-05-25 20:31:27 +02:00
8f06971aaf Update port to 7890 and rename image/container/volume to -2
- docker-compose.yml: port 7890:7890, image/container/volume all renamed to tts-voice-creator-clone-and-design-2
- Dockerfile: EXPOSE 7890
- server.py: uvicorn binds to port 7890

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 20:07:47 +02:00
631ca16290 Studio Notebook redesign: warm cream theme, sidebar, multi-file static structure
- New light UI: fixed 220px sidebar, single scrolling page, 8 named sections
- Static files split by concern: style.css, app.js, loader.js, nav.js
- Each page section is its own partial in static/sections/s-*.html
- loader.js fetches all section partials in parallel, then loads app.js and nav.js
- All original functionality, element IDs, and API endpoints preserved

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 19:53:01 +02:00