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>
45 lines
2.4 KiB
HTML
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 — 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>
|