tts-voice-creator-clone-and.../static/sections/s-library.html
mARTin-B78 52994df70b feat: unified Library + character tags + shared cast (v1.10.0)
Restructure the sidebar into Voices / Speak / Setup groups and fuse the
Read Aloud and Script Rehearser features into one workspace:

- New combined Library section (Books · Theater Plays · Characters/Cast)
  with cross-links (Rehearse a book, Read Aloud a play).
- Character tags like voice tags: one record, many productions, reusable
  across books/scripts; seeded with origin book, editable in the editor.
- Shared cast resolution: opening a production fills empty cast slots from
  the character roster (matched by book OR tag); voice choices written back
  on save. Productions joined by normalized title (prodKey).
- Tags nav group for voices (distinct tags + counts, Cloned/Designed/Fav).
- Fold standalone Characters into Library; Read Aloud now a single entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 12:12:22 +02:00

45 lines
2.4 KiB
HTML

<div class="section-head">
<span class="section-icon"><span class="mdi mdi-bookshelf"></span></span>
<div class="section-title">
<h2>Library</h2>
<p>Your productions in one place &mdash; books to read aloud, theater plays to rehearse, and the shared character cast that links them.</p>
</div>
</div>
<div class="lib-tabs">
<button class="lib-tab is-active" data-library-view="books" onclick="navLibraryView('books')"><span class="mdi mdi-book-open-page-variant-outline"></span> Books</button>
<button class="lib-tab" data-library-view="plays" onclick="navLibraryView('plays')"><span class="mdi mdi-theater"></span> Theater Plays</button>
<button class="lib-tab" data-library-view="characters" onclick="navLibraryView('characters')"><span class="mdi mdi-account-box-multiple-outline"></span> Characters / Cast</button>
</div>
<!-- Books -->
<div class="lib-panel is-active" data-library-panel="books">
<div id="lib-books-list" class="reh-bookshelf"></div>
</div>
<!-- Theater Plays -->
<div class="lib-panel" data-library-panel="plays">
<div id="lib-plays-list" class="reh-bookshelf"></div>
</div>
<!-- Characters / Cast -->
<div class="lib-panel" data-library-panel="characters">
<div class="cl-toolbar card" style="padding:12px; display:flex; gap:10px; align-items:center; flex-wrap:wrap">
<label class="cl-tool-field">
<span class="cl-tool-label"><span class="mdi mdi-tag-multiple-outline"></span> Production</span>
<select id="cl-book-filter"><option value="">All productions</option></select>
</label>
<label class="cl-tool-field" style="flex:1; min-width:180px">
<span class="cl-tool-label"><span class="mdi mdi-magnify"></span> Search</span>
<input id="cl-search" type="text" placeholder="Name, alias, archetype, tag…" spellcheck="false">
</label>
</div>
<div id="cl-grid" class="cl-grid">
<div class="cl-empty">
<span class="mdi mdi-account-box-multiple-outline" style="font-size:48px;opacity:0.4"></span>
<p>No characters yet.</p>
<p class="cl-empty-hint">Run <b>Character sheets</b> from Read Aloud or the Script Rehearser to populate your cast.</p>
</div>
</div>
</div>