dsh-audiogen 0.4.17 → 0.4.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -26,6 +26,11 @@ window.__ModuleLoader__.load({
26
26
  const LLM_MODELS_API = "/api/dsh-audiogen/llm/models";
27
27
  /** Host-mediated model/voice discovery endpoint. */
28
28
  const MODEL_API = { discover: "/api/dsh-audiogen/models/discover" };
29
+ /** Vendor voice management (browse/filter + delete) endpoints. */
30
+ const VOICES_API = {
31
+ list: "/api/dsh-audiogen/voices/list",
32
+ delete: "/api/dsh-audiogen/voices/delete"
33
+ };
29
34
  /** Host-persisted generation history routes. */
30
35
  const HISTORY_API = {
31
36
  list: "/api/dsh-audiogen/history/list",
@@ -116,6 +121,29 @@ window.__ModuleLoader__.load({
116
121
  async libraryRemove(ids) {
117
122
  return { ok: (await (await postJson(LIBRARY_API.remove, { ids })).json()).ok === true };
118
123
  }
124
+ /** 厂商音色浏览/筛选(MiniMax / ElevenLabs)。 */
125
+ async voiceList(request) {
126
+ const body = await (await postJson(VOICES_API.list, request)).json();
127
+ return {
128
+ ok: body.ok === true,
129
+ ...body.vendor === void 0 ? {} : { vendor: body.vendor },
130
+ ...body.channel === void 0 ? {} : { channel: body.channel },
131
+ ...body.voices === void 0 ? {} : { voices: body.voices },
132
+ ...body.truncated === void 0 ? {} : { truncated: body.truncated },
133
+ ...body.note === void 0 ? {} : { note: body.note },
134
+ ...body.code === void 0 ? {} : { code: body.code },
135
+ ...body.message === void 0 ? {} : { message: body.message }
136
+ };
137
+ }
138
+ /** 删除厂商音色(不可逆;confirm=true 必须)。 */
139
+ async voiceDelete(request) {
140
+ const body = await (await postJson(VOICES_API.delete, request)).json();
141
+ return {
142
+ ok: body.ok === true,
143
+ ...body.message === void 0 ? {} : { message: body.message },
144
+ ...body.code === void 0 ? {} : { code: body.code }
145
+ };
146
+ }
119
147
  };
120
148
  //#endregion
121
149
  //#region src/client/controller.ts
@@ -160,6 +188,7 @@ window.__ModuleLoader__.load({
160
188
  "panel.title": "AI 音频",
161
189
  "tab.studio": "生成",
162
190
  "tab.library": "资源库",
191
+ "tab.voices": "音色",
163
192
  "mode.tts": "文本转语音",
164
193
  "mode.music": "音乐生成",
165
194
  "mode.sfx": "音效生成",
@@ -269,6 +298,7 @@ window.__ModuleLoader__.load({
269
298
  "panel.title": "AI Audio",
270
299
  "tab.studio": "Studio",
271
300
  "tab.library": "Library",
301
+ "tab.voices": "Voices",
272
302
  "mode.tts": "Text to speech",
273
303
  "mode.music": "Music",
274
304
  "mode.sfx": "Sound effects",
@@ -1174,127 +1204,127 @@ window.__ModuleLoader__.load({
1174
1204
  }
1175
1205
  //#endregion
1176
1206
  //#region \0dsh-css:/Users/shimingming/Projects_code/dsh-audiogen/src/client/audio-panel.module.css.mjs
1177
- const css$4 = ".Oo1fpq_panel{background:var(--dsw-alias-bg-base,#f7f7f8);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary,#1f2328);font-family:var(--dsw-font-family,system-ui, sans-serif);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex;position:relative}.Oo1fpq_panel,.Oo1fpq_panel *,.Oo1fpq_panel :before,.Oo1fpq_panel :after{box-sizing:border-box}.Oo1fpq_header{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.Oo1fpq_title{color:var(--dsw-alias-label-primary,#1f2328);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Oo1fpq_tabs{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.Oo1fpq_tab{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;transition:color .12s,background .12s;display:inline-flex}.Oo1fpq_tab:hover{color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_tab[data-active=true]{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.Oo1fpq_studio{flex:1;gap:14px;min-width:0;min-height:0;display:flex}.Oo1fpq_formCol{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:none;gap:11px;width:380px;min-width:320px;max-width:440px;min-height:0;padding:2px;display:flex;overflow-y:auto}.Oo1fpq_formCol::-webkit-scrollbar{width:8px}.Oo1fpq_formCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_modeRow{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:0;min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;flex:auto;justify-content:center;align-items:center;padding:6px 10px;font-family:inherit;font-size:11.5px;transition:border-color .12s,color .12s,background .12s;display:flex}.Oo1fpq_modeButton:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_label{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_input,.Oo1fpq_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);width:100%;min-height:36px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.Oo1fpq_input:focus,.Oo1fpq_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.Oo1fpq_textarea{resize:vertical;min-height:96px}.Oo1fpq_checkbox{color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_checkbox input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_radioGroup{align-items:center;gap:8px;display:flex}.Oo1fpq_radioOption{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);color:var(--dsw-alias-label-primary,#1f2328);cursor:pointer;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s;display:flex}.Oo1fpq_radioOption input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_radioOption[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_hint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px;line-height:1.55}.Oo1fpq_row{align-items:flex-end;gap:8px;display:flex}.Oo1fpq_row .Oo1fpq_label{flex:1;min-width:0}.Oo1fpq_advanced{border:1px dashed var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;flex-direction:column;gap:9px;padding:9px 11px;display:flex}.Oo1fpq_advanced summary{cursor:pointer;color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px;font-weight:600}.Oo1fpq_generate{background:var(--dsw-alias-label-primary,#1f2328);color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .12s,transform 80ms}.Oo1fpq_generate:hover:not(:disabled){opacity:.92}.Oo1fpq_generate:active:not(:disabled){transform:translateY(1px)}.Oo1fpq_generate:disabled{opacity:.5;cursor:default}.Oo1fpq_resultCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;border-radius:12px;flex-direction:column;flex:1;gap:10px;min-width:0;max-width:760px;padding:14px;display:flex;overflow-y:auto}.Oo1fpq_resultCol::-webkit-scrollbar{width:8px}.Oo1fpq_resultCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_resultEmpty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.Oo1fpq_resultEmptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:24px;display:inline-flex}.Oo1fpq_resultEmptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.Oo1fpq_error{border:1px solid var(--dsw-alias-label-error,#b91c1c);background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 6%, transparent);color:var(--dsw-alias-label-error,#b91c1c);border-radius:9px;flex:none;margin:0;padding:9px 12px;font-size:12.5px;line-height:1.55}.Oo1fpq_resultMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_resultModeChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:2px 9px;font-size:11px}.Oo1fpq_audioList{gap:10px;display:grid}.Oo1fpq_audioCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:12px;transition:border-color .12s;display:flex}.Oo1fpq_audioCard[data-saved=true]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 42%, var(--dsw-alias-border-l1,#e5e7eb));background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 5%, var(--dsw-alias-bg-layer-2,#f7f7f8))}.Oo1fpq_audioCardHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.Oo1fpq_voiceIdChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);max-width:100%;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:hidden}.Oo1fpq_savedChip{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent);color:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.Oo1fpq_audioCardIndex{color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.Oo1fpq_audioCardActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.Oo1fpq_ghostButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-family:inherit;font-size:12px;text-decoration:none;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_ghostButton:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent)}.Oo1fpq_compareBox{border:1px dashed var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 4%, var(--dsw-alias-bg-layer-1,#fff));border-radius:10px;flex-direction:column;gap:7px;padding:9px 11px;display:flex}.Oo1fpq_compareChips{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_compareChip{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_compareChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.Oo1fpq_compareChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.Oo1fpq_compareBoard{flex-direction:column;gap:12px;display:flex}.Oo1fpq_compareGroup{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:11px;display:flex}.Oo1fpq_compareGroup[data-state=running]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=done]{border-color:color-mix(in srgb, #10b981 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=error]{border-color:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroupHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.Oo1fpq_compareModelName{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l1,#e5e7eb);color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;overflow:hidden}.Oo1fpq_compareState{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.Oo1fpq_compareGroup[data-state=running] .Oo1fpq_compareState{color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_compareGroup[data-state=done] .Oo1fpq_compareState{color:#059669}.Oo1fpq_compareGroup[data-state=error] .Oo1fpq_compareState,.Oo1fpq_hint[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:12px;flex-direction:column;flex:none;width:250px;min-width:210px;max-width:290px;min-height:0;display:flex;overflow:hidden}.Oo1fpq_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_historyTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:700}.Oo1fpq_historyClear{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border-radius:999px;padding:2px 9px;font-family:inherit;font-size:11px}.Oo1fpq_historyClear:hover{color:var(--dsw-alias-label-error,#b91c1c);border-color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:9px;display:flex;overflow-y:auto}.Oo1fpq_historyList::-webkit-scrollbar{width:8px}.Oo1fpq_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:1;justify-content:center;align-items:center;padding:18px;font-size:12px;display:flex}.Oo1fpq_historyItem{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:6px;padding:9px;display:flex}.Oo1fpq_historyPrompt{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.Oo1fpq_historyMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.Oo1fpq_historyActions{justify-content:flex-end;display:flex}.Oo1fpq_historyAction{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;display:inline-flex}.Oo1fpq_historyAction:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_player{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;align-items:center;gap:9px;padding:8px 10px;display:flex}.Oo1fpq_playerCompact{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:9px;align-items:center;gap:8px;padding:6px 8px;display:flex}.Oo1fpq_playButton{background:var(--dsw-alias-label-primary,#1f2328);width:30px;height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:opacity .12s,transform 80ms;display:inline-flex}.Oo1fpq_playerCompact .Oo1fpq_playButton{width:26px;height:26px}.Oo1fpq_playButton:hover{opacity:.9}.Oo1fpq_playButton:active{transform:scale(.94)}.Oo1fpq_track{background:var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;border-radius:999px;flex:1;min-width:0;height:4px;position:relative}.Oo1fpq_trackFill{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;position:absolute;inset:0 auto 0 0}.Oo1fpq_trackKnob{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:50%;width:11px;height:11px;transition:transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%)}.Oo1fpq_time{font-variant-numeric:tabular-nums;min-width:62px;color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-align:right;flex:none;font-size:10.5px}.Oo1fpq_playerCompact .Oo1fpq_time{min-width:56px;font-size:10px}.Oo1fpq_muteButton{width:24px;height:24px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.Oo1fpq_muteButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modalMask{z-index:200;backdrop-filter:blur(3px);background:#0006;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Oo1fpq_modal{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:14px;flex-direction:column;gap:12px;width:440px;max-width:100%;max-height:calc(100vh - 40px);padding:16px;display:flex;box-shadow:0 18px 50px #00000038}.Oo1fpq_modalHead{color:var(--dsw-alias-label-primary,#1f2328);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.Oo1fpq_modalBody{flex-direction:column;gap:11px;min-height:0;display:flex;overflow-y:auto}.Oo1fpq_formRow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.Oo1fpq_modalFoot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.Oo1fpq_primaryButton{background:var(--dsw-alias-label-primary,#1f2328);min-height:32px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.Oo1fpq_primaryButton:disabled{opacity:.5;cursor:default}.Oo1fpq_secondaryButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:32px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:8px;padding:0 14px;font-family:inherit;font-size:12.5px}.Oo1fpq_secondaryButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.Oo1fpq_iconButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_toast{z-index:150;border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-mask-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:7px 16px;font-size:12.5px;animation:.16s ease-out Oo1fpq_audiogenToastIn;display:inline-flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Oo1fpq_audiogenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.Oo1fpq_toast{animation-duration:1ms}}.Oo1fpq_modelCheckList{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);border-radius:8px;flex-direction:column;gap:4px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.Oo1fpq_resultGroups{flex-direction:column;gap:16px;display:flex}.Oo1fpq_resultGroup{flex-direction:column;gap:8px;display:flex}.Oo1fpq_resultGroupHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_resultGroupChip{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-primary,#1f2328);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.Oo1fpq_resultGroupError{color:var(--dsw-alias-state-error-primary,#dc2626);font-size:12px}.Oo1fpq_resultGroupCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px}.Oo1fpq_overrideTable{flex-direction:column;gap:6px;display:flex}.Oo1fpq_overrideRow{align-items:center;gap:6px;display:flex}.Oo1fpq_overrideCell{min-width:0;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.Oo1fpq_overrideCell .Oo1fpq_input{min-height:30px;padding:5px 8px}.Oo1fpq_overrideCellHead{color:var(--dsw-alias-label-primary,#1f2328);white-space:normal;font-weight:700}.Oo1fpq_taskList{flex-direction:column;gap:14px;display:flex}.Oo1fpq_taskCard{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_taskCard[data-state=failed]{border-color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskCard[data-state=cancelled]{opacity:.75}.Oo1fpq_taskHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_taskLabel{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:13px;font-weight:600;overflow:hidden}.Oo1fpq_taskStatus{color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px}.Oo1fpq_taskStatus[data-state=done]{color:var(--dsw-alias-state-success-primary,#16a34a)}.Oo1fpq_taskStatus[data-state=failed]{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskActions{gap:6px;margin-left:auto;display:flex}.Oo1fpq_historyTabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.Oo1fpq_historyTab{border:1px solid var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;background:var(--dsw-alias-bg-layer-3,#fff);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:3px 10px;font-size:12px}.Oo1fpq_historyTab[data-active=true]{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_historyTabCount{color:var(--dsw-alias-label-tertiary,#9ca3af);margin-left:4px;font-size:11px}.Oo1fpq_historyCompareSummary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_historyCompareBadge{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.Oo1fpq_historyModelRow{border-top:1px dashed var(--dsw-alias-border-l1,#e5e7eb);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.Oo1fpq_overrideOnly{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:10px;font-weight:500}.Oo1fpq_overrideDash{color:var(--dsw-alias-label-tertiary,#9ca3af);padding:0 6px}.Oo1fpq_historyTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;margin:2px 0;font-size:11px}.Oo1fpq_formSection{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);margin:10px 0 2px;padding-bottom:4px;font-size:11px;font-weight:700}.Oo1fpq_formFields{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.Oo1fpq_fieldCell{min-width:0}.Oo1fpq_fieldFull{grid-column:1/-1}.Oo1fpq_textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modeIcon{margin-right:4px;font-size:13px}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-interactive-bg-hover-accent,#26314824);background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_taskBar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:999px;flex:1;min-width:60px;height:4px;display:block;overflow:hidden}.Oo1fpq_taskBar i{background:var(--dsw-alias-interactive-bg-hover-accent,#26314859);border-radius:999px;height:100%;transition:width .3s;display:block}.Oo1fpq_historyIcon{width:26px;height:26px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.Oo1fpq_historyIcon:hover{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_historyIcon[title^=删除]:hover{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_historyPrompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Oo1fpq_input:focus-visible,.Oo1fpq_select:focus-visible,.Oo1fpq_textarea:focus-visible,.Oo1fpq_modeButton:focus-visible,.Oo1fpq_ghostButton:focus-visible,.Oo1fpq_historyAction:focus-visible,.Oo1fpq_historyIcon:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:1px}.Oo1fpq_generate:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:2px}@media (width<=1100px){.Oo1fpq_studio{flex-wrap:wrap}.Oo1fpq_historyCol{width:100%;min-width:0;max-width:none}}@media (width<=720px){.Oo1fpq_formCol{width:100%;min-width:0;max-width:none}.Oo1fpq_resultCol{min-height:320px}}.Oo1fpq_formSectionRow{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.Oo1fpq_formSectionRow .Oo1fpq_formSection{flex:1}.Oo1fpq_enhanceCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.Oo1fpq_enhanceCardHead{color:var(--dsw-alias-label-secondary,#6b7280);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_enhanceActions{gap:6px;display:flex}.Oo1fpq_enhanceActionsRow{justify-content:flex-end;margin-top:-4px;display:flex}";
1178
- const tagId$4 = "dsh-audiogen/audio-panel.module.css";
1179
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
1207
+ const css$5 = ".Oo1fpq_panel{background:var(--dsw-alias-bg-base,#f7f7f8);min-width:0;height:100%;min-height:0;color:var(--dsw-alias-label-primary,#1f2328);font-family:var(--dsw-font-family,system-ui, sans-serif);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex;position:relative}.Oo1fpq_panel,.Oo1fpq_panel *,.Oo1fpq_panel :before,.Oo1fpq_panel :after{box-sizing:border-box}.Oo1fpq_header{flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.Oo1fpq_title{color:var(--dsw-alias-label-primary,#1f2328);white-space:nowrap;margin:0;font-size:16px;font-weight:700}.Oo1fpq_tabs{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:2px;padding:3px;display:inline-flex}.Oo1fpq_tab{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:12.5px;transition:color .12s,background .12s;display:inline-flex}.Oo1fpq_tab:hover{color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_tab[data-active=true]{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.Oo1fpq_studio{flex:1;gap:14px;min-width:0;min-height:0;display:flex}.Oo1fpq_formCol{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:none;gap:11px;width:380px;min-width:320px;max-width:440px;min-height:0;padding:2px;display:flex;overflow-y:auto}.Oo1fpq_formCol::-webkit-scrollbar{width:8px}.Oo1fpq_formCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_modeRow{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:0;min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;flex:auto;justify-content:center;align-items:center;padding:6px 10px;font-family:inherit;font-size:11.5px;transition:border-color .12s,color .12s,background .12s;display:flex}.Oo1fpq_modeButton:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_label{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_input,.Oo1fpq_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);width:100%;min-height:36px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:9px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.Oo1fpq_input:focus,.Oo1fpq_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.Oo1fpq_textarea{resize:vertical;min-height:96px}.Oo1fpq_checkbox{color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.Oo1fpq_checkbox input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_radioGroup{align-items:center;gap:8px;display:flex}.Oo1fpq_radioOption{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fff);color:var(--dsw-alias-label-primary,#1f2328);cursor:pointer;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s;display:flex}.Oo1fpq_radioOption input{accent-color:var(--dsw-alias-brand-primary,#2563eb);margin:0}.Oo1fpq_radioOption[data-active=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent);font-weight:600}.Oo1fpq_hint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px;line-height:1.55}.Oo1fpq_row{align-items:flex-end;gap:8px;display:flex}.Oo1fpq_row .Oo1fpq_label{flex:1;min-width:0}.Oo1fpq_advanced{border:1px dashed var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;flex-direction:column;gap:9px;padding:9px 11px;display:flex}.Oo1fpq_advanced summary{cursor:pointer;color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px;font-weight:600}.Oo1fpq_generate{background:var(--dsw-alias-label-primary,#1f2328);color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:opacity .12s,transform 80ms}.Oo1fpq_generate:hover:not(:disabled){opacity:.92}.Oo1fpq_generate:active:not(:disabled){transform:translateY(1px)}.Oo1fpq_generate:disabled{opacity:.5;cursor:default}.Oo1fpq_resultCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;border-radius:12px;flex-direction:column;flex:1;gap:10px;min-width:0;max-width:760px;padding:14px;display:flex;overflow-y:auto}.Oo1fpq_resultCol::-webkit-scrollbar{width:8px}.Oo1fpq_resultCol::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_resultEmpty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.Oo1fpq_resultEmptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;font-size:24px;display:inline-flex}.Oo1fpq_resultEmptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.Oo1fpq_error{border:1px solid var(--dsw-alias-label-error,#b91c1c);background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 6%, transparent);color:var(--dsw-alias-label-error,#b91c1c);border-radius:9px;flex:none;margin:0;padding:9px 12px;font-size:12.5px;line-height:1.55}.Oo1fpq_resultMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_resultModeChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:2px 9px;font-size:11px}.Oo1fpq_audioList{gap:10px;display:grid}.Oo1fpq_audioCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:12px;transition:border-color .12s;display:flex}.Oo1fpq_audioCard[data-saved=true]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 42%, var(--dsw-alias-border-l1,#e5e7eb));background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 5%, var(--dsw-alias-bg-layer-2,#f7f7f8))}.Oo1fpq_audioCardHead{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.Oo1fpq_voiceIdChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);max-width:100%;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:2px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:hidden}.Oo1fpq_savedChip{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent);color:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.Oo1fpq_audioCardIndex{color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.Oo1fpq_audioCardActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.Oo1fpq_ghostButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-family:inherit;font-size:12px;text-decoration:none;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_ghostButton:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 8%, transparent)}.Oo1fpq_compareBox{border:1px dashed var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 4%, var(--dsw-alias-bg-layer-1,#fff));border-radius:10px;flex-direction:column;gap:7px;padding:9px 11px;display:flex}.Oo1fpq_compareChips{flex-wrap:wrap;gap:6px;display:flex}.Oo1fpq_compareChip{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.Oo1fpq_compareChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.Oo1fpq_compareChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.Oo1fpq_compareBoard{flex-direction:column;gap:12px;display:flex}.Oo1fpq_compareGroup{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:12px;flex-direction:column;gap:8px;padding:11px;display:flex}.Oo1fpq_compareGroup[data-state=running]{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=done]{border-color:color-mix(in srgb, #10b981 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroup[data-state=error]{border-color:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 45%, var(--dsw-alias-border-l1,#e5e7eb))}.Oo1fpq_compareGroupHead{justify-content:space-between;align-items:center;gap:10px;display:flex}.Oo1fpq_compareModelName{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l1,#e5e7eb);color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;overflow:hidden}.Oo1fpq_compareState{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.Oo1fpq_compareGroup[data-state=running] .Oo1fpq_compareState{color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_compareGroup[data-state=done] .Oo1fpq_compareState{color:#059669}.Oo1fpq_compareGroup[data-state=error] .Oo1fpq_compareState,.Oo1fpq_hint[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyCol{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:12px;flex-direction:column;flex:none;width:250px;min-width:210px;max-width:290px;min-height:0;display:flex;overflow:hidden}.Oo1fpq_historyHeader{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_historyTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:700}.Oo1fpq_historyClear{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border-radius:999px;padding:2px 9px;font-family:inherit;font-size:11px}.Oo1fpq_historyClear:hover{color:var(--dsw-alias-label-error,#b91c1c);border-color:var(--dsw-alias-label-error,#b91c1c)}.Oo1fpq_historyList{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:9px;display:flex;overflow-y:auto}.Oo1fpq_historyList::-webkit-scrollbar{width:8px}.Oo1fpq_historyList::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.Oo1fpq_historyEmpty{text-align:center;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:1;justify-content:center;align-items:center;padding:18px;font-size:12px;display:flex}.Oo1fpq_historyItem{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:6px;padding:9px;display:flex}.Oo1fpq_historyPrompt{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.Oo1fpq_historyMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.Oo1fpq_historyActions{justify-content:flex-end;display:flex}.Oo1fpq_historyAction{border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-family:inherit;font-size:11px;display:inline-flex}.Oo1fpq_historyAction:hover{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.Oo1fpq_player{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:10px;align-items:center;gap:9px;padding:8px 10px;display:flex}.Oo1fpq_playerCompact{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:9px;align-items:center;gap:8px;padding:6px 8px;display:flex}.Oo1fpq_playButton{background:var(--dsw-alias-label-primary,#1f2328);width:30px;height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:opacity .12s,transform 80ms;display:inline-flex}.Oo1fpq_playerCompact .Oo1fpq_playButton{width:26px;height:26px}.Oo1fpq_playButton:hover{opacity:.9}.Oo1fpq_playButton:active{transform:scale(.94)}.Oo1fpq_track{background:var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;border-radius:999px;flex:1;min-width:0;height:4px;position:relative}.Oo1fpq_trackFill{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:999px;position:absolute;inset:0 auto 0 0}.Oo1fpq_trackKnob{background:var(--dsw-alias-brand-primary,#2563eb);border-radius:50%;width:11px;height:11px;transition:transform .1s;position:absolute;top:50%;transform:translate(-50%,-50%)}.Oo1fpq_time{font-variant-numeric:tabular-nums;min-width:62px;color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;text-align:right;flex:none;font-size:10.5px}.Oo1fpq_playerCompact .Oo1fpq_time{min-width:56px;font-size:10px}.Oo1fpq_muteButton{width:24px;height:24px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.Oo1fpq_muteButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modalMask{z-index:200;backdrop-filter:blur(3px);background:#0006;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.Oo1fpq_modal{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);border-radius:14px;flex-direction:column;gap:12px;width:440px;max-width:100%;max-height:calc(100vh - 40px);padding:16px;display:flex;box-shadow:0 18px 50px #00000038}.Oo1fpq_modalHead{color:var(--dsw-alias-label-primary,#1f2328);justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.Oo1fpq_modalBody{flex-direction:column;gap:11px;min-height:0;display:flex;overflow-y:auto}.Oo1fpq_formRow{grid-template-columns:1fr 1fr;gap:10px;display:grid}.Oo1fpq_modalFoot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.Oo1fpq_primaryButton{background:var(--dsw-alias-label-primary,#1f2328);min-height:32px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.Oo1fpq_primaryButton:disabled{opacity:.5;cursor:default}.Oo1fpq_secondaryButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);min-height:32px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border-radius:8px;padding:0 14px;font-family:inherit;font-size:12.5px}.Oo1fpq_secondaryButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_iconButton{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.Oo1fpq_iconButton:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_toast{z-index:150;border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-mask-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);backdrop-filter:blur(6px);pointer-events:none;border-radius:999px;align-items:center;gap:7px;padding:7px 16px;font-size:12.5px;animation:.16s ease-out Oo1fpq_audiogenToastIn;display:inline-flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000038}@keyframes Oo1fpq_audiogenToastIn{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.Oo1fpq_toast{animation-duration:1ms}}.Oo1fpq_modelCheckList{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);border-radius:8px;flex-direction:column;gap:4px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.Oo1fpq_resultGroups{flex-direction:column;gap:16px;display:flex}.Oo1fpq_resultGroup{flex-direction:column;gap:8px;display:flex}.Oo1fpq_resultGroupHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_resultGroupChip{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);border:1px solid var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-label-primary,#1f2328);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.Oo1fpq_resultGroupError{color:var(--dsw-alias-state-error-primary,#dc2626);font-size:12px}.Oo1fpq_resultGroupCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px}.Oo1fpq_overrideTable{flex-direction:column;gap:6px;display:flex}.Oo1fpq_overrideRow{align-items:center;gap:6px;display:flex}.Oo1fpq_overrideCell{min-width:0;color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}.Oo1fpq_overrideCell .Oo1fpq_input{min-height:30px;padding:5px 8px}.Oo1fpq_overrideCellHead{color:var(--dsw-alias-label-primary,#1f2328);white-space:normal;font-weight:700}.Oo1fpq_taskList{flex-direction:column;gap:14px;display:flex}.Oo1fpq_taskCard{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.Oo1fpq_taskCard[data-state=failed]{border-color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskCard[data-state=cancelled]{opacity:.75}.Oo1fpq_taskHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_taskLabel{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:13px;font-weight:600;overflow:hidden}.Oo1fpq_taskStatus{color:var(--dsw-alias-label-secondary,#6b7280);font-size:12px}.Oo1fpq_taskStatus[data-state=done]{color:var(--dsw-alias-state-success-primary,#16a34a)}.Oo1fpq_taskStatus[data-state=failed]{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_taskActions{gap:6px;margin-left:auto;display:flex}.Oo1fpq_historyTabs{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.Oo1fpq_historyTab{border:1px solid var(--dsw-alias-border-l2,#d1d5db);cursor:pointer;background:var(--dsw-alias-bg-layer-3,#fff);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;padding:3px 10px;font-size:12px}.Oo1fpq_historyTab[data-active=true]{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_historyTabCount{color:var(--dsw-alias-label-tertiary,#9ca3af);margin-left:4px;font-size:11px}.Oo1fpq_historyCompareSummary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.Oo1fpq_historyCompareBadge{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-3,#fff);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.Oo1fpq_historyModelRow{border-top:1px dashed var(--dsw-alias-border-l1,#e5e7eb);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.Oo1fpq_overrideOnly{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:10px;font-weight:500}.Oo1fpq_overrideDash{color:var(--dsw-alias-label-tertiary,#9ca3af);padding:0 6px}.Oo1fpq_historyTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;margin:2px 0;font-size:11px}.Oo1fpq_formSection{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);margin:10px 0 2px;padding-bottom:4px;font-size:11px;font-weight:700}.Oo1fpq_formFields{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.Oo1fpq_fieldCell{min-width:0}.Oo1fpq_fieldFull{grid-column:1/-1}.Oo1fpq_textarea:disabled{opacity:.55;cursor:not-allowed;background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.Oo1fpq_modeIcon{margin-right:4px;font-size:13px}.Oo1fpq_modeButton[data-active=true]{border-color:var(--dsw-alias-interactive-bg-hover-accent,#26314824);background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.Oo1fpq_taskBar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:999px;flex:1;min-width:60px;height:4px;display:block;overflow:hidden}.Oo1fpq_taskBar i{background:var(--dsw-alias-interactive-bg-hover-accent,#26314859);border-radius:999px;height:100%;transition:width .3s;display:block}.Oo1fpq_historyIcon{width:26px;height:26px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.Oo1fpq_historyIcon:hover{background:var(--dsw-alias-interactive-bg-hover-accent,#26314824);color:var(--dsw-alias-label-primary,#1f2328)}.Oo1fpq_historyIcon[title^=删除]:hover{color:var(--dsw-alias-state-error-primary,#dc2626)}.Oo1fpq_historyPrompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.Oo1fpq_input:focus-visible,.Oo1fpq_select:focus-visible,.Oo1fpq_textarea:focus-visible,.Oo1fpq_modeButton:focus-visible,.Oo1fpq_ghostButton:focus-visible,.Oo1fpq_historyAction:focus-visible,.Oo1fpq_historyIcon:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:1px}.Oo1fpq_generate:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent,#26314859);outline-offset:2px}@media (width<=1100px){.Oo1fpq_studio{flex-wrap:wrap}.Oo1fpq_historyCol{width:100%;min-width:0;max-width:none}}@media (width<=720px){.Oo1fpq_formCol{width:100%;min-width:0;max-width:none}.Oo1fpq_resultCol{min-height:320px}}.Oo1fpq_formSectionRow{justify-content:space-between;align-items:flex-end;gap:8px;display:flex}.Oo1fpq_formSectionRow .Oo1fpq_formSection{flex:1}.Oo1fpq_enhanceCard{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#fafafa);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.Oo1fpq_enhanceCardHead{color:var(--dsw-alias-label-secondary,#6b7280);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.Oo1fpq_enhanceActions{gap:6px;display:flex}.Oo1fpq_enhanceActionsRow{justify-content:flex-end;margin-top:-4px;display:flex}";
1208
+ const tagId$5 = "dsh-audiogen/audio-panel.module.css";
1209
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
1180
1210
  const tag = document.createElement("style");
1181
1211
  tag.dataset.plugin = "dsh-audiogen";
1182
- tag.dataset.pluginCss = tagId$4;
1183
- tag.textContent = css$4;
1212
+ tag.dataset.pluginCss = tagId$5;
1213
+ tag.textContent = css$5;
1184
1214
  document.head.appendChild(tag);
1185
1215
  }
1186
1216
  var audio_panel_module_css_default = {
1187
- "modalHead": "Oo1fpq_modalHead",
1188
- "hint": "Oo1fpq_hint",
1189
- "resultGroup": "Oo1fpq_resultGroup",
1190
- "resultGroupChip": "Oo1fpq_resultGroupChip",
1191
- "radioGroup": "Oo1fpq_radioGroup",
1192
- "resultModeChip": "Oo1fpq_resultModeChip",
1193
- "audioCard": "Oo1fpq_audioCard",
1194
- "compareModelName": "Oo1fpq_compareModelName",
1195
- "compareBoard": "Oo1fpq_compareBoard",
1217
+ "historyList": "Oo1fpq_historyList",
1218
+ "modelCheckList": "Oo1fpq_modelCheckList",
1219
+ "formSectionRow": "Oo1fpq_formSectionRow",
1220
+ "audioCardActions": "Oo1fpq_audioCardActions",
1221
+ "primaryButton": "Oo1fpq_primaryButton",
1222
+ "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1223
+ "ghostButton": "Oo1fpq_ghostButton",
1224
+ "modeRow": "Oo1fpq_modeRow",
1225
+ "resultGroupHead": "Oo1fpq_resultGroupHead",
1226
+ "player": "Oo1fpq_player",
1196
1227
  "historyPrompt": "Oo1fpq_historyPrompt",
1228
+ "overrideCell": "Oo1fpq_overrideCell",
1229
+ "taskCard": "Oo1fpq_taskCard",
1230
+ "taskList": "Oo1fpq_taskList",
1231
+ "historyHeader": "Oo1fpq_historyHeader",
1232
+ "time": "Oo1fpq_time",
1233
+ "overrideDash": "Oo1fpq_overrideDash",
1197
1234
  "trackKnob": "Oo1fpq_trackKnob",
1198
- "resultGroupCount": "Oo1fpq_resultGroupCount",
1199
- "studio": "Oo1fpq_studio",
1200
- "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1201
- "resultEmpty": "Oo1fpq_resultEmpty",
1202
- "input": "Oo1fpq_input",
1235
+ "overrideOnly": "Oo1fpq_overrideOnly",
1236
+ "resultGroups": "Oo1fpq_resultGroups",
1237
+ "radioGroup": "Oo1fpq_radioGroup",
1238
+ "modeIcon": "Oo1fpq_modeIcon",
1239
+ "modeButton": "Oo1fpq_modeButton",
1240
+ "voiceIdChip": "Oo1fpq_voiceIdChip",
1241
+ "header": "Oo1fpq_header",
1242
+ "compareGroup": "Oo1fpq_compareGroup",
1243
+ "compareBox": "Oo1fpq_compareBox",
1244
+ "historyMeta": "Oo1fpq_historyMeta",
1245
+ "overrideRow": "Oo1fpq_overrideRow",
1203
1246
  "savedChip": "Oo1fpq_savedChip",
1247
+ "modalHead": "Oo1fpq_modalHead",
1248
+ "modalFoot": "Oo1fpq_modalFoot",
1249
+ "taskActions": "Oo1fpq_taskActions",
1204
1250
  "compareChip": "Oo1fpq_compareChip",
1205
- "enhanceActions": "Oo1fpq_enhanceActions",
1251
+ "title": "Oo1fpq_title",
1252
+ "resultGroupCount": "Oo1fpq_resultGroupCount",
1253
+ "historyTab": "Oo1fpq_historyTab",
1254
+ "historyTabs": "Oo1fpq_historyTabs",
1206
1255
  "historyTime": "Oo1fpq_historyTime",
1207
- "primaryButton": "Oo1fpq_primaryButton",
1256
+ "historyClear": "Oo1fpq_historyClear",
1257
+ "fieldFull": "Oo1fpq_fieldFull",
1258
+ "resultMeta": "Oo1fpq_resultMeta",
1259
+ "formRow": "Oo1fpq_formRow",
1260
+ "taskBar": "Oo1fpq_taskBar",
1261
+ "compareGroupHead": "Oo1fpq_compareGroupHead",
1262
+ "historyIcon": "Oo1fpq_historyIcon",
1263
+ "studio": "Oo1fpq_studio",
1264
+ "select": "Oo1fpq_select",
1265
+ "formCol": "Oo1fpq_formCol",
1208
1266
  "textarea": "Oo1fpq_textarea",
1209
- "historyTitle": "Oo1fpq_historyTitle",
1210
- "enhanceCardHead": "Oo1fpq_enhanceCardHead",
1211
- "modalMask": "Oo1fpq_modalMask",
1212
- "overrideRow": "Oo1fpq_overrideRow",
1267
+ "checkbox": "Oo1fpq_checkbox",
1268
+ "historyTabCount": "Oo1fpq_historyTabCount",
1269
+ "generate": "Oo1fpq_generate",
1270
+ "historyItem": "Oo1fpq_historyItem",
1213
1271
  "formSection": "Oo1fpq_formSection",
1214
- "modalFoot": "Oo1fpq_modalFoot",
1215
- "formFields": "Oo1fpq_formFields",
1216
- "playButton": "Oo1fpq_playButton",
1217
- "resultGroupHead": "Oo1fpq_resultGroupHead",
1272
+ "compareChips": "Oo1fpq_compareChips",
1273
+ "enhanceActions": "Oo1fpq_enhanceActions",
1274
+ "enhanceActionsRow": "Oo1fpq_enhanceActionsRow",
1275
+ "playerCompact": "Oo1fpq_playerCompact",
1276
+ "resultGroupChip": "Oo1fpq_resultGroupChip",
1277
+ "label": "Oo1fpq_label",
1218
1278
  "compareState": "Oo1fpq_compareState",
1219
- "track": "Oo1fpq_track",
1220
- "iconButton": "Oo1fpq_iconButton",
1221
- "compareBox": "Oo1fpq_compareBox",
1222
- "historyIcon": "Oo1fpq_historyIcon",
1279
+ "historyEmpty": "Oo1fpq_historyEmpty",
1223
1280
  "row": "Oo1fpq_row",
1224
- "historyClear": "Oo1fpq_historyClear",
1225
- "voiceIdChip": "Oo1fpq_voiceIdChip",
1226
- "audioCardActions": "Oo1fpq_audioCardActions",
1227
- "time": "Oo1fpq_time",
1228
- "modeRow": "Oo1fpq_modeRow",
1229
- "checkbox": "Oo1fpq_checkbox",
1230
- "ghostButton": "Oo1fpq_ghostButton",
1231
- "modal": "Oo1fpq_modal",
1232
- "audioList": "Oo1fpq_audioList",
1233
- "audioCardHead": "Oo1fpq_audioCardHead",
1234
- "taskActions": "Oo1fpq_taskActions",
1235
- "historyTab": "Oo1fpq_historyTab",
1236
- "taskStatus": "Oo1fpq_taskStatus",
1237
- "historyTabCount": "Oo1fpq_historyTabCount",
1238
- "historyMeta": "Oo1fpq_historyMeta",
1239
- "panel": "Oo1fpq_panel",
1240
- "resultMeta": "Oo1fpq_resultMeta",
1241
- "historyAction": "Oo1fpq_historyAction",
1242
- "muteButton": "Oo1fpq_muteButton",
1243
- "compareGroup": "Oo1fpq_compareGroup",
1281
+ "historyCol": "Oo1fpq_historyCol",
1282
+ "error": "Oo1fpq_error",
1283
+ "resultCol": "Oo1fpq_resultCol",
1284
+ "resultEmptyIcon": "Oo1fpq_resultEmptyIcon",
1285
+ "resultModeChip": "Oo1fpq_resultModeChip",
1244
1286
  "radioOption": "Oo1fpq_radioOption",
1245
- "generate": "Oo1fpq_generate",
1287
+ "compareBoard": "Oo1fpq_compareBoard",
1246
1288
  "tab": "Oo1fpq_tab",
1247
- "formRow": "Oo1fpq_formRow",
1248
1289
  "secondaryButton": "Oo1fpq_secondaryButton",
1249
- "resultGroups": "Oo1fpq_resultGroups",
1250
- "formCol": "Oo1fpq_formCol",
1251
- "overrideTable": "Oo1fpq_overrideTable",
1252
- "taskBar": "Oo1fpq_taskBar",
1290
+ "panel": "Oo1fpq_panel",
1291
+ "muteButton": "Oo1fpq_muteButton",
1292
+ "toast": "Oo1fpq_toast",
1293
+ "historyActions": "Oo1fpq_historyActions",
1294
+ "track": "Oo1fpq_track",
1295
+ "resultEmpty": "Oo1fpq_resultEmpty",
1253
1296
  "advanced": "Oo1fpq_advanced",
1254
- "modelCheckList": "Oo1fpq_modelCheckList",
1255
- "header": "Oo1fpq_header",
1256
- "error": "Oo1fpq_error",
1257
- "overrideCellHead": "Oo1fpq_overrideCellHead",
1258
- "taskList": "Oo1fpq_taskList",
1259
- "playerCompact": "Oo1fpq_playerCompact",
1260
- "fieldFull": "Oo1fpq_fieldFull",
1297
+ "modal": "Oo1fpq_modal",
1298
+ "overrideTable": "Oo1fpq_overrideTable",
1299
+ "hint": "Oo1fpq_hint",
1300
+ "taskHead": "Oo1fpq_taskHead",
1301
+ "playButton": "Oo1fpq_playButton",
1261
1302
  "taskLabel": "Oo1fpq_taskLabel",
1262
- "taskCard": "Oo1fpq_taskCard",
1263
- "resultEmptyIcon": "Oo1fpq_resultEmptyIcon",
1264
- "historyModelRow": "Oo1fpq_historyModelRow",
1265
- "formSectionRow": "Oo1fpq_formSectionRow",
1266
- "historyList": "Oo1fpq_historyList",
1267
- "title": "Oo1fpq_title",
1268
- "resultGroupError": "Oo1fpq_resultGroupError",
1303
+ "audioCardHead": "Oo1fpq_audioCardHead",
1304
+ "historyTitle": "Oo1fpq_historyTitle",
1269
1305
  "trackFill": "Oo1fpq_trackFill",
1270
- "historyActions": "Oo1fpq_historyActions",
1271
- "historyTabs": "Oo1fpq_historyTabs",
1272
- "historyItem": "Oo1fpq_historyItem",
1273
- "overrideCell": "Oo1fpq_overrideCell",
1274
- "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1306
+ "historyAction": "Oo1fpq_historyAction",
1307
+ "modalMask": "Oo1fpq_modalMask",
1275
1308
  "modalBody": "Oo1fpq_modalBody",
1276
- "enhanceCard": "Oo1fpq_enhanceCard",
1277
- "select": "Oo1fpq_select",
1278
- "tabs": "Oo1fpq_tabs",
1279
- "toast": "Oo1fpq_toast",
1280
- "enhanceActionsRow": "Oo1fpq_enhanceActionsRow",
1281
- "compareGroupHead": "Oo1fpq_compareGroupHead",
1282
- "taskHead": "Oo1fpq_taskHead",
1309
+ "audioCard": "Oo1fpq_audioCard",
1310
+ "resultGroupError": "Oo1fpq_resultGroupError",
1311
+ "compareModelName": "Oo1fpq_compareModelName",
1312
+ "taskStatus": "Oo1fpq_taskStatus",
1313
+ "fieldCell": "Oo1fpq_fieldCell",
1283
1314
  "historyCompareSummary": "Oo1fpq_historyCompareSummary",
1284
- "historyEmpty": "Oo1fpq_historyEmpty",
1285
- "historyHeader": "Oo1fpq_historyHeader",
1286
- "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1315
+ "enhanceCard": "Oo1fpq_enhanceCard",
1316
+ "enhanceCardHead": "Oo1fpq_enhanceCardHead",
1317
+ "iconButton": "Oo1fpq_iconButton",
1318
+ "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1319
+ "overrideCellHead": "Oo1fpq_overrideCellHead",
1320
+ "historyModelRow": "Oo1fpq_historyModelRow",
1321
+ "resultGroup": "Oo1fpq_resultGroup",
1322
+ "formFields": "Oo1fpq_formFields",
1287
1323
  "audioCardIndex": "Oo1fpq_audioCardIndex",
1288
- "modeButton": "Oo1fpq_modeButton",
1289
- "fieldCell": "Oo1fpq_fieldCell",
1290
- "modeIcon": "Oo1fpq_modeIcon",
1291
- "overrideOnly": "Oo1fpq_overrideOnly",
1292
- "overrideDash": "Oo1fpq_overrideDash",
1293
- "historyCol": "Oo1fpq_historyCol",
1294
- "player": "Oo1fpq_player",
1295
- "resultCol": "Oo1fpq_resultCol",
1296
- "compareChips": "Oo1fpq_compareChips",
1297
- "label": "Oo1fpq_label"
1324
+ "audioList": "Oo1fpq_audioList",
1325
+ "input": "Oo1fpq_input",
1326
+ "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1327
+ "tabs": "Oo1fpq_tabs"
1298
1328
  };
1299
1329
  //#endregion
1300
1330
  //#region src/client/audio-player.tsx
@@ -1670,7 +1700,7 @@ window.__ModuleLoader__.load({
1670
1700
  const pad = (n) => String(n).padStart(2, "0");
1671
1701
  return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
1672
1702
  }
1673
- function useConfig(scope) {
1703
+ function useConfig$1(scope) {
1674
1704
  const [value, setValue] = (0, react.useState)(scope.getSnapshot().value);
1675
1705
  (0, react.useEffect)(() => scope.subscribe(() => {
1676
1706
  setValue(scope.getSnapshot().value);
@@ -1765,7 +1795,7 @@ window.__ModuleLoader__.load({
1765
1795
  }
1766
1796
  function StudioView(props) {
1767
1797
  const { api, scope, config, reuse } = props;
1768
- const effectiveConfig = useConfig(scope);
1798
+ const effectiveConfig = useConfig$1(scope);
1769
1799
  const cfg = config ?? effectiveConfig;
1770
1800
  const enabled = cfg?.enabled ?? true;
1771
1801
  const modelOptions = audioModelOptions(cfg);
@@ -3305,72 +3335,72 @@ window.__ModuleLoader__.load({
3305
3335
  }
3306
3336
  //#endregion
3307
3337
  //#region \0dsh-css:/Users/shimingming/Projects_code/dsh-audiogen/src/client/library.module.css.mjs
3308
- const css$3 = ".vzUV2a_library{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:0;display:flex}.vzUV2a_toolbar{flex-wrap:wrap;flex:none;align-items:center;gap:12px;display:flex}.vzUV2a_searchBox{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:170px;height:33px;color:var(--dsw-alias-label-tertiary,#9ca3af);border-radius:999px;flex:220px;align-items:center;gap:7px;padding:0 11px;display:inline-flex}.vzUV2a_searchBox:focus-within{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.vzUV2a_searchInput{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:12.5px}.vzUV2a_searchInput::placeholder{color:var(--dsw-alias-label-tertiary,#9ca3af)}.vzUV2a_typeChips{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:5px;padding:3px;display:inline-flex}.vzUV2a_chip{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,background .12s;display:inline-flex}.vzUV2a_chip:hover{color:var(--dsw-alias-label-primary,#1f2328)}.vzUV2a_chip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.vzUV2a_chipCount{background:var(--dsw-alias-bg-layer-1,#fff);color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 6px;font-size:10.5px}.vzUV2a_chip[data-active=true] .vzUV2a_chipCount{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 10%, transparent);color:var(--dsw-alias-brand-primary,#2563eb)}.vzUV2a_filterRow{flex-wrap:wrap;flex:none;align-items:center;gap:6px;display:flex}.vzUV2a_filterLabel{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px;font-weight:600}.vzUV2a_smallChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);min-height:24px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_smallChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.vzUV2a_smallChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.vzUV2a_listHead{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:10px;padding-bottom:2px;display:flex}.vzUV2a_listCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:12px}.vzUV2a_listActions{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.vzUV2a_selCount{color:var(--dsw-alias-brand-primary,#2563eb);font-size:11.5px;font-weight:600}.vzUV2a_smallSelect{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);height:27px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:7px;outline:none;padding:0 8px;font-family:inherit;font-size:11.5px}.vzUV2a_ghostBtn{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_ghostBtn:hover:not(:disabled){color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.vzUV2a_dangerBtn{border:1px solid var(--dsw-alias-label-error,#b91c1c);min-height:27px;color:var(--dsw-alias-label-error,#b91c1c);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_dangerBtn:hover:not(:disabled){background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 8%, transparent)}.vzUV2a_ghostBtn:disabled,.vzUV2a_dangerBtn:disabled{opacity:.45;cursor:default}.vzUV2a_stateNote{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;padding:8px 4px;font-size:12px}.vzUV2a_stateNote[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.vzUV2a_empty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.vzUV2a_emptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:4px;font-size:26px;display:inline-flex}.vzUV2a_emptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.vzUV2a_grid{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex:1;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-content:start;gap:12px;min-height:0;padding:2px 2px 6px;display:grid;overflow-y:auto}.vzUV2a_grid::-webkit-scrollbar{width:8px}.vzUV2a_grid::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.vzUV2a_card{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);cursor:pointer;border-radius:12px;flex-direction:column;gap:7px;padding:11px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:relative}.vzUV2a_card:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);transform:translateY(-1px);box-shadow:0 4px 14px #18203614}.vzUV2a_card[data-selected=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 24%, transparent)}.vzUV2a_cardCheck{z-index:2;position:absolute;top:9px;right:9px}.vzUV2a_cardCheck input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary,#2563eb);cursor:pointer}.vzUV2a_cardHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.vzUV2a_typeBadge{background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:10.5px;font-weight:600;display:inline-flex}.vzUV2a_typeBadge[data-type=voice]{color:#8b5cf6;background:#8b5cf61f}.vzUV2a_typeBadge[data-type=music]{color:#059669;background:#10b9811f}.vzUV2a_typeBadge[data-type=sfx]{color:#b45309;background:#f59e0b24}.vzUV2a_typeBadge[data-type=tts]{color:#2563eb;background:#3b82f61f}.vzUV2a_cardTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;font-size:10.5px}.vzUV2a_cardName{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.vzUV2a_cardFoot{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.vzUV2a_metaChip{background:var(--dsw-alias-bg-layer-2,#f3f4f6);max-width:140px;color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:10.5px;overflow:hidden}.vzUV2a_metaChip[data-tag]{color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 10%, transparent)}.vzUV2a_drawerMask{z-index:120;backdrop-filter:blur(2px);background:#0000004d;justify-content:flex-end;display:flex;position:absolute;inset:0}.vzUV2a_drawer{background:var(--dsw-alias-bg-layer-1,#fff);border-left:1px solid var(--dsw-alias-border-l2,#d1d5db);flex-direction:column;width:min(430px,100% - 24px);height:100%;animation:.18s ease-out vzUV2a_audiogenDrawerIn;display:flex;box-shadow:-12px 0 36px #0000002e}@keyframes vzUV2a_audiogenDrawerIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.vzUV2a_drawerHead{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;display:flex}.vzUV2a_drawerTitle{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.vzUV2a_iconBtn{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.vzUV2a_iconBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.vzUV2a_drawerBody{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px;display:flex;overflow-y:auto}.vzUV2a_drawerBody::-webkit-scrollbar{width:8px}.vzUV2a_drawerBody::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.vzUV2a_drawerSection{flex-direction:column;gap:9px;display:flex}.vzUV2a_drawerLabel{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);text-transform:uppercase;font-size:11px;font-weight:700}.vzUV2a_drawerPlayerList{flex-direction:column;gap:8px;display:flex}.vzUV2a_drawerPlayer{flex-direction:column;gap:4px;display:flex}.vzUV2a_drawerPlayerName{color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;padding-left:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow:hidden}.vzUV2a_drawerField{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;display:flex}.vzUV2a_drawerSplit{grid-template-columns:1fr 1fr;gap:9px;display:grid}.vzUV2a_input,.vzUV2a_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#f7f7f8);width:100%;min-height:32px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:8px;outline:none;padding:6px 9px;font-family:inherit;font-size:12.5px}.vzUV2a_input:focus,.vzUV2a_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent)}.vzUV2a_textarea{resize:vertical}.vzUV2a_provenance{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:7px;padding:10px 11px;display:flex}.vzUV2a_provRow{gap:8px;min-width:0;display:flex}.vzUV2a_provKey{width:64px;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;padding-top:1px;font-size:11px;font-weight:600}.vzUV2a_provValue{min-width:0;color:var(--dsw-alias-label-primary,#1f2328);overflow-wrap:anywhere;flex-wrap:wrap;align-items:flex-start;gap:6px;font-size:12px;line-height:1.5;display:flex}.vzUV2a_mono{color:var(--dsw-alias-label-secondary,#6b7280);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.vzUV2a_promptText{color:var(--dsw-alias-label-secondary,#6b7280)}.vzUV2a_code{background:var(--dsw-alias-bg-layer-3,#eceef1);overflow-wrap:anywhere;border-radius:5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.vzUV2a_paramsDetails summary{cursor:pointer;color:var(--dsw-alias-brand-primary,#2563eb);user-select:none;font-size:11px}.vzUV2a_paramsDetails pre{background:var(--dsw-alias-bg-layer-3,#eceef1);width:100%;max-height:200px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:7px;margin:5px 0 0;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.5;overflow:auto}.vzUV2a_drawerActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.vzUV2a_primaryBtn{background:var(--dsw-alias-label-primary,#1f2328);min-height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 13px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.vzUV2a_primaryBtn:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion:reduce){.vzUV2a_drawer{animation-duration:1ms}}";
3309
- const tagId$3 = "dsh-audiogen/library.module.css";
3310
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
3338
+ const css$4 = ".vzUV2a_library{flex-direction:column;flex:1;gap:10px;min-width:0;min-height:0;display:flex}.vzUV2a_toolbar{flex-wrap:wrap;flex:none;align-items:center;gap:12px;display:flex}.vzUV2a_searchBox{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-width:170px;height:33px;color:var(--dsw-alias-label-tertiary,#9ca3af);border-radius:999px;flex:220px;align-items:center;gap:7px;padding:0 11px;display:inline-flex}.vzUV2a_searchBox:focus-within{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 14%, transparent)}.vzUV2a_searchInput{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:12.5px}.vzUV2a_searchInput::placeholder{color:var(--dsw-alias-label-tertiary,#9ca3af)}.vzUV2a_typeChips{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:10px;align-items:center;gap:5px;padding:3px;display:inline-flex}.vzUV2a_chip{min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:12px;transition:color .12s,background .12s;display:inline-flex}.vzUV2a_chip:hover{color:var(--dsw-alias-label-primary,#1f2328)}.vzUV2a_chip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);background:var(--dsw-alias-bg-layer-1,#fff);font-weight:600;box-shadow:0 1px 3px #0000001a}.vzUV2a_chipCount{background:var(--dsw-alias-bg-layer-1,#fff);color:var(--dsw-alias-label-tertiary,#9ca3af);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 6px;font-size:10.5px}.vzUV2a_chip[data-active=true] .vzUV2a_chipCount{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 10%, transparent);color:var(--dsw-alias-brand-primary,#2563eb)}.vzUV2a_filterRow{flex-wrap:wrap;flex:none;align-items:center;gap:6px;display:flex}.vzUV2a_filterLabel{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px;font-weight:600}.vzUV2a_smallChip{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);min-height:24px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_smallChip:hover{color:var(--dsw-alias-label-primary,#1f2328);border-color:var(--dsw-alias-label-dimmed,#9ca3af)}.vzUV2a_smallChip[data-active=true]{color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 9%, transparent);font-weight:600}.vzUV2a_listHead{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:10px;padding-bottom:2px;display:flex}.vzUV2a_listCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:12px}.vzUV2a_listActions{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.vzUV2a_selCount{color:var(--dsw-alias-brand-primary,#2563eb);font-size:11.5px;font-weight:600}.vzUV2a_smallSelect{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);height:27px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:7px;outline:none;padding:0 8px;font-family:inherit;font-size:11.5px}.vzUV2a_ghostBtn{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);min-height:27px;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_ghostBtn:hover:not(:disabled){color:var(--dsw-alias-brand-primary,#2563eb);border-color:var(--dsw-alias-brand-primary,#2563eb)}.vzUV2a_dangerBtn{border:1px solid var(--dsw-alias-label-error,#b91c1c);min-height:27px;color:var(--dsw-alias-label-error,#b91c1c);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-family:inherit;font-size:11.5px;display:inline-flex}.vzUV2a_dangerBtn:hover:not(:disabled){background:color-mix(in srgb, var(--dsw-alias-label-error,#b91c1c) 8%, transparent)}.vzUV2a_ghostBtn:disabled,.vzUV2a_dangerBtn:disabled{opacity:.45;cursor:default}.vzUV2a_stateNote{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;padding:8px 4px;font-size:12px}.vzUV2a_stateNote[data-error]{color:var(--dsw-alias-label-error,#b91c1c)}.vzUV2a_empty{text-align:center;color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.vzUV2a_emptyIcon{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:4px;font-size:26px;display:inline-flex}.vzUV2a_emptyHint{color:var(--dsw-alias-label-tertiary,#9ca3af);margin:0;font-size:11.5px}.vzUV2a_grid{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex:1;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-content:start;gap:12px;min-height:0;padding:2px 2px 6px;display:grid;overflow-y:auto}.vzUV2a_grid::-webkit-scrollbar{width:8px}.vzUV2a_grid::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.vzUV2a_card{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);cursor:pointer;border-radius:12px;flex-direction:column;gap:7px;padding:11px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex;position:relative}.vzUV2a_card:hover{border-color:var(--dsw-alias-label-dimmed,#9ca3af);transform:translateY(-1px);box-shadow:0 4px 14px #18203614}.vzUV2a_card[data-selected=true]{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 24%, transparent)}.vzUV2a_cardCheck{z-index:2;position:absolute;top:9px;right:9px}.vzUV2a_cardCheck input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary,#2563eb);cursor:pointer}.vzUV2a_cardHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.vzUV2a_typeBadge{background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:10.5px;font-weight:600;display:inline-flex}.vzUV2a_typeBadge[data-type=voice]{color:#8b5cf6;background:#8b5cf61f}.vzUV2a_typeBadge[data-type=music]{color:#059669;background:#10b9811f}.vzUV2a_typeBadge[data-type=sfx]{color:#b45309;background:#f59e0b24}.vzUV2a_typeBadge[data-type=tts]{color:#2563eb;background:#3b82f61f}.vzUV2a_cardTime{color:var(--dsw-alias-label-tertiary,#9ca3af);white-space:nowrap;font-size:10.5px}.vzUV2a_cardName{color:var(--dsw-alias-label-primary,#1f2328);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.vzUV2a_cardFoot{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.vzUV2a_metaChip{background:var(--dsw-alias-bg-layer-2,#f3f4f6);max-width:140px;color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:10.5px;overflow:hidden}.vzUV2a_metaChip[data-tag]{color:var(--dsw-alias-brand-primary,#2563eb);background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 10%, transparent)}.vzUV2a_drawerMask{z-index:120;backdrop-filter:blur(2px);background:#0000004d;justify-content:flex-end;display:flex;position:absolute;inset:0}.vzUV2a_drawer{background:var(--dsw-alias-bg-layer-1,#fff);border-left:1px solid var(--dsw-alias-border-l2,#d1d5db);flex-direction:column;width:min(430px,100% - 24px);height:100%;animation:.18s ease-out vzUV2a_audiogenDrawerIn;display:flex;box-shadow:-12px 0 36px #0000002e}@keyframes vzUV2a_audiogenDrawerIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.vzUV2a_drawerHead{border-bottom:1px solid var(--dsw-alias-border-l1,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;display:flex}.vzUV2a_drawerTitle{color:var(--dsw-alias-label-primary,#1f2328);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.vzUV2a_iconBtn{width:26px;height:26px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.vzUV2a_iconBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.vzUV2a_drawerBody{scrollbar-width:thin;scrollbar-color:var(--dsw-alias-border-l2) transparent;flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px;display:flex;overflow-y:auto}.vzUV2a_drawerBody::-webkit-scrollbar{width:8px}.vzUV2a_drawerBody::-webkit-scrollbar-thumb{background:var(--dsw-alias-border-l2);border-radius:999px}.vzUV2a_drawerSection{flex-direction:column;gap:9px;display:flex}.vzUV2a_drawerLabel{letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#9ca3af);text-transform:uppercase;font-size:11px;font-weight:700}.vzUV2a_drawerPlayerList{flex-direction:column;gap:8px;display:flex}.vzUV2a_drawerPlayer{flex-direction:column;gap:4px;display:flex}.vzUV2a_drawerPlayerName{color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;padding-left:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;overflow:hidden}.vzUV2a_drawerField{color:var(--dsw-alias-label-secondary,#6b7280);flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;display:flex}.vzUV2a_drawerSplit{grid-template-columns:1fr 1fr;gap:9px;display:grid}.vzUV2a_input,.vzUV2a_textarea{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-2,#f7f7f8);width:100%;min-height:32px;color:var(--dsw-alias-label-primary,#1f2328);border-radius:8px;outline:none;padding:6px 9px;font-family:inherit;font-size:12.5px}.vzUV2a_input:focus,.vzUV2a_textarea:focus{border-color:var(--dsw-alias-brand-primary,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary,#2563eb) 12%, transparent)}.vzUV2a_textarea{resize:vertical}.vzUV2a_provenance{border:1px solid var(--dsw-alias-border-l1,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f7f7f8);border-radius:10px;flex-direction:column;gap:7px;padding:10px 11px;display:flex}.vzUV2a_provRow{gap:8px;min-width:0;display:flex}.vzUV2a_provKey{width:64px;color:var(--dsw-alias-label-tertiary,#9ca3af);flex:none;padding-top:1px;font-size:11px;font-weight:600}.vzUV2a_provValue{min-width:0;color:var(--dsw-alias-label-primary,#1f2328);overflow-wrap:anywhere;flex-wrap:wrap;align-items:flex-start;gap:6px;font-size:12px;line-height:1.5;display:flex}.vzUV2a_mono{color:var(--dsw-alias-label-secondary,#6b7280);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.vzUV2a_promptText{color:var(--dsw-alias-label-secondary,#6b7280)}.vzUV2a_code{background:var(--dsw-alias-bg-layer-3,#eceef1);overflow-wrap:anywhere;border-radius:5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.vzUV2a_paramsDetails summary{cursor:pointer;color:var(--dsw-alias-brand-primary,#2563eb);user-select:none;font-size:11px}.vzUV2a_paramsDetails pre{background:var(--dsw-alias-bg-layer-3,#eceef1);width:100%;max-height:200px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:7px;margin:5px 0 0;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.5;overflow:auto}.vzUV2a_drawerActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.vzUV2a_primaryBtn{background:var(--dsw-alias-label-primary,#1f2328);min-height:30px;color:var(--dsw-alias-bg-layer-3,#fff);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 13px;font-family:inherit;font-size:12px;font-weight:600;display:inline-flex}.vzUV2a_primaryBtn:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion:reduce){.vzUV2a_drawer{animation-duration:1ms}}";
3339
+ const tagId$4 = "dsh-audiogen/library.module.css";
3340
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
3311
3341
  const tag = document.createElement("style");
3312
3342
  tag.dataset.plugin = "dsh-audiogen";
3313
- tag.dataset.pluginCss = tagId$3;
3314
- tag.textContent = css$3;
3343
+ tag.dataset.pluginCss = tagId$4;
3344
+ tag.textContent = css$4;
3315
3345
  document.head.appendChild(tag);
3316
3346
  }
3317
3347
  var library_module_css_default = {
3318
3348
  "paramsDetails": "vzUV2a_paramsDetails",
3319
- "filterRow": "vzUV2a_filterRow",
3320
- "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
3321
- "searchBox": "vzUV2a_searchBox",
3322
- "smallChip": "vzUV2a_smallChip",
3323
- "listHead": "vzUV2a_listHead",
3324
- "empty": "vzUV2a_empty",
3325
- "cardHead": "vzUV2a_cardHead",
3326
- "cardTime": "vzUV2a_cardTime",
3327
3349
  "emptyIcon": "vzUV2a_emptyIcon",
3328
- "metaChip": "vzUV2a_metaChip",
3329
- "smallSelect": "vzUV2a_smallSelect",
3330
- "drawerTitle": "vzUV2a_drawerTitle",
3331
- "provKey": "vzUV2a_provKey",
3332
- "promptText": "vzUV2a_promptText",
3333
- "chip": "vzUV2a_chip",
3334
- "filterLabel": "vzUV2a_filterLabel",
3335
- "dangerBtn": "vzUV2a_dangerBtn",
3336
- "cardCheck": "vzUV2a_cardCheck",
3337
- "iconBtn": "vzUV2a_iconBtn",
3338
- "cardName": "vzUV2a_cardName",
3350
+ "emptyHint": "vzUV2a_emptyHint",
3339
3351
  "typeChips": "vzUV2a_typeChips",
3352
+ "grid": "vzUV2a_grid",
3340
3353
  "drawerPlayerList": "vzUV2a_drawerPlayerList",
3341
- "drawerPlayerName": "vzUV2a_drawerPlayerName",
3342
- "input": "vzUV2a_input",
3343
- "cardFoot": "vzUV2a_cardFoot",
3344
3354
  "drawerBody": "vzUV2a_drawerBody",
3345
- "drawerActions": "vzUV2a_drawerActions",
3346
- "provenance": "vzUV2a_provenance",
3347
- "drawerSection": "vzUV2a_drawerSection",
3348
- "drawerField": "vzUV2a_drawerField",
3349
- "toolbar": "vzUV2a_toolbar",
3350
- "drawerHead": "vzUV2a_drawerHead",
3351
- "provRow": "vzUV2a_provRow",
3352
- "searchInput": "vzUV2a_searchInput",
3353
- "mono": "vzUV2a_mono",
3354
- "drawer": "vzUV2a_drawer",
3355
3355
  "library": "vzUV2a_library",
3356
+ "cardHead": "vzUV2a_cardHead",
3357
+ "searchInput": "vzUV2a_searchInput",
3358
+ "card": "vzUV2a_card",
3359
+ "drawerHead": "vzUV2a_drawerHead",
3360
+ "drawerTitle": "vzUV2a_drawerTitle",
3361
+ "cardCheck": "vzUV2a_cardCheck",
3362
+ "cardTime": "vzUV2a_cardTime",
3356
3363
  "drawerPlayer": "vzUV2a_drawerPlayer",
3357
- "provValue": "vzUV2a_provValue",
3364
+ "textarea": "vzUV2a_textarea",
3365
+ "provKey": "vzUV2a_provKey",
3366
+ "code": "vzUV2a_code",
3367
+ "empty": "vzUV2a_empty",
3368
+ "chip": "vzUV2a_chip",
3369
+ "provenance": "vzUV2a_provenance",
3370
+ "searchBox": "vzUV2a_searchBox",
3371
+ "promptText": "vzUV2a_promptText",
3372
+ "listHead": "vzUV2a_listHead",
3358
3373
  "listActions": "vzUV2a_listActions",
3359
- "chipCount": "vzUV2a_chipCount",
3360
- "stateNote": "vzUV2a_stateNote",
3361
- "emptyHint": "vzUV2a_emptyHint",
3362
- "selCount": "vzUV2a_selCount",
3363
- "grid": "vzUV2a_grid",
3364
- "listCount": "vzUV2a_listCount",
3365
- "typeBadge": "vzUV2a_typeBadge",
3374
+ "cardName": "vzUV2a_cardName",
3375
+ "smallSelect": "vzUV2a_smallSelect",
3376
+ "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
3377
+ "iconBtn": "vzUV2a_iconBtn",
3378
+ "drawerPlayerName": "vzUV2a_drawerPlayerName",
3379
+ "primaryBtn": "vzUV2a_primaryBtn",
3380
+ "mono": "vzUV2a_mono",
3381
+ "metaChip": "vzUV2a_metaChip",
3382
+ "drawerSplit": "vzUV2a_drawerSplit",
3383
+ "drawerActions": "vzUV2a_drawerActions",
3366
3384
  "ghostBtn": "vzUV2a_ghostBtn",
3385
+ "typeBadge": "vzUV2a_typeBadge",
3386
+ "filterLabel": "vzUV2a_filterLabel",
3387
+ "listCount": "vzUV2a_listCount",
3388
+ "provValue": "vzUV2a_provValue",
3367
3389
  "drawerMask": "vzUV2a_drawerMask",
3390
+ "smallChip": "vzUV2a_smallChip",
3391
+ "stateNote": "vzUV2a_stateNote",
3392
+ "drawer": "vzUV2a_drawer",
3393
+ "drawerSection": "vzUV2a_drawerSection",
3394
+ "toolbar": "vzUV2a_toolbar",
3395
+ "chipCount": "vzUV2a_chipCount",
3396
+ "cardFoot": "vzUV2a_cardFoot",
3397
+ "dangerBtn": "vzUV2a_dangerBtn",
3398
+ "filterRow": "vzUV2a_filterRow",
3399
+ "selCount": "vzUV2a_selCount",
3400
+ "drawerField": "vzUV2a_drawerField",
3368
3401
  "drawerLabel": "vzUV2a_drawerLabel",
3369
- "drawerSplit": "vzUV2a_drawerSplit",
3370
- "primaryBtn": "vzUV2a_primaryBtn",
3371
- "code": "vzUV2a_code",
3372
- "card": "vzUV2a_card",
3373
- "textarea": "vzUV2a_textarea"
3402
+ "input": "vzUV2a_input",
3403
+ "provRow": "vzUV2a_provRow"
3374
3404
  };
3375
3405
  //#endregion
3376
3406
  //#region src/client/library-view.tsx
@@ -4161,6 +4191,497 @@ window.__ModuleLoader__.load({
4161
4191
  });
4162
4192
  }
4163
4193
  //#endregion
4194
+ //#region \0dsh-css:/Users/shimingming/Projects_code/dsh-audiogen/src/client/voices.module.css.mjs
4195
+ const css$3 = ".FjxQqG_view{flex-direction:column;gap:10px;height:100%;min-height:0;padding:14px 16px;display:flex;overflow:hidden}.FjxQqG_toolbar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:8px;display:grid}.FjxQqG_field{flex-direction:column;gap:4px;min-width:0;display:flex}.FjxQqG_fieldLabel{color:var(--dsw-alias-fg-l3,#6b7280);font-size:12px}.FjxQqG_input,.FjxQqG_select{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg,#fff);width:100%;min-height:30px;color:var(--dsw-alias-fg,#111827);border-radius:8px;outline:none;padding:5px 8px;font-size:13px}.FjxQqG_input:focus,.FjxQqG_select:focus{border-color:var(--dsw-accent,#2563eb)}.FjxQqG_primaryBtn{background:var(--dsw-accent,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;height:30px;padding:0 12px;font-size:13px;display:inline-flex}.FjxQqG_primaryBtn:hover:not(:disabled){filter:brightness(1.1)}.FjxQqG_primaryBtn:disabled{opacity:.6;cursor:not-allowed}.FjxQqG_advanced{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f9fafb);border-radius:8px;padding:6px 10px}.FjxQqG_advancedSummary{color:var(--dsw-alias-fg-l3,#6b7280);cursor:pointer;user-select:none;font-size:12px}.FjxQqG_advancedGrid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px;display:grid}.FjxQqG_checkRow{color:var(--dsw-alias-fg-l2,#374151);align-items:center;gap:6px;min-height:30px;font-size:12px;display:flex}.FjxQqG_stateLine{align-items:center;gap:10px;min-height:18px;display:flex}.FjxQqG_stateNote{color:var(--dsw-alias-fg-l3,#6b7280);font-size:12px}.FjxQqG_stateNote[data-error]{color:#dc2626}.FjxQqG_count{color:var(--dsw-alias-fg-l3,#6b7280);font-size:12px}.FjxQqG_list{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.FjxQqG_card{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg,#fff);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.FjxQqG_cardHead{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.FjxQqG_voiceName{color:var(--dsw-alias-fg,#111827);text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-size:13.5px;font-weight:600;overflow:hidden}.FjxQqG_badge{background:var(--dsw-alias-bg-layer-2,#f3f4f6);color:var(--dsw-alias-fg-l3,#6b7280);border-radius:999px;padding:2px 8px;font-size:11px}.FjxQqG_badge[data-source=custom],.FjxQqG_badge[data-source=owned]{color:#1d4ed8;background:#dbeafe}.FjxQqG_meta{color:var(--dsw-alias-fg-l3,#6b7280);flex-wrap:wrap;gap:8px;font-size:11.5px;display:flex}.FjxQqG_voiceId{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.FjxQqG_description{color:var(--dsw-alias-fg-l2,#374151);max-height:64px;margin:0;font-size:12.5px;line-height:1.5;overflow:hidden}.FjxQqG_preview{max-width:340px}.FjxQqG_actions{align-items:center;gap:8px;display:flex}.FjxQqG_useBtn,.FjxQqG_deleteBtn{cursor:pointer;border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg,#fff);height:28px;color:var(--dsw-alias-fg,#111827);border-radius:8px;align-items:center;gap:5px;padding:0 10px;font-size:12.5px;display:inline-flex}.FjxQqG_useBtn:hover{border-color:var(--dsw-accent,#2563eb);color:var(--dsw-accent,#2563eb)}.FjxQqG_deleteBtn{color:#dc2626}.FjxQqG_deleteBtn:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.FjxQqG_deleteBtn:disabled{opacity:.5;cursor:not-allowed}.FjxQqG_empty{border:1px dashed var(--dsw-alias-border-l2,#d1d5db);color:var(--dsw-alias-fg-l3,#6b7280);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:28px 12px;font-size:12.5px;display:flex}";
4196
+ const tagId$3 = "dsh-audiogen/voices.module.css";
4197
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
4198
+ const tag = document.createElement("style");
4199
+ tag.dataset.plugin = "dsh-audiogen";
4200
+ tag.dataset.pluginCss = tagId$3;
4201
+ tag.textContent = css$3;
4202
+ document.head.appendChild(tag);
4203
+ }
4204
+ var voices_module_css_default = {
4205
+ "list": "FjxQqG_list",
4206
+ "field": "FjxQqG_field",
4207
+ "fieldLabel": "FjxQqG_fieldLabel",
4208
+ "stateLine": "FjxQqG_stateLine",
4209
+ "cardHead": "FjxQqG_cardHead",
4210
+ "badge": "FjxQqG_badge",
4211
+ "select": "FjxQqG_select",
4212
+ "primaryBtn": "FjxQqG_primaryBtn",
4213
+ "deleteBtn": "FjxQqG_deleteBtn",
4214
+ "toolbar": "FjxQqG_toolbar",
4215
+ "voiceId": "FjxQqG_voiceId",
4216
+ "empty": "FjxQqG_empty",
4217
+ "stateNote": "FjxQqG_stateNote",
4218
+ "voiceName": "FjxQqG_voiceName",
4219
+ "checkRow": "FjxQqG_checkRow",
4220
+ "input": "FjxQqG_input",
4221
+ "view": "FjxQqG_view",
4222
+ "advanced": "FjxQqG_advanced",
4223
+ "description": "FjxQqG_description",
4224
+ "preview": "FjxQqG_preview",
4225
+ "actions": "FjxQqG_actions",
4226
+ "card": "FjxQqG_card",
4227
+ "count": "FjxQqG_count",
4228
+ "advancedSummary": "FjxQqG_advancedSummary",
4229
+ "useBtn": "FjxQqG_useBtn",
4230
+ "meta": "FjxQqG_meta",
4231
+ "advancedGrid": "FjxQqG_advancedGrid"
4232
+ };
4233
+ //#endregion
4234
+ //#region src/client/voices-view.tsx
4235
+ /**
4236
+ * Voices view: vendor voice management (browse/filter + delete + reuse).
4237
+ *
4238
+ * Lists TTS voices of a channel through the host voice-manager:
4239
+ * MiniMax (system presets + custom designed/cloned) and ElevenLabs
4240
+ * (owned + shared library, with the official /v1/shared-voices server-side
4241
+ * filters). Owned/custom voices can be deleted (confirmed); official,
4242
+ * shared and system voices are read-only. «用此音色生成» backfills the
4243
+ * studio form and switches to TTS.
4244
+ */
4245
+ const SOURCE_LABELS = {
4246
+ system: "官方预置",
4247
+ custom: "自建设计",
4248
+ owned: "账户自有",
4249
+ shared: "社区共享"
4250
+ };
4251
+ function useConfig(scope) {
4252
+ const [value, setValue] = (0, react.useState)(scope.getSnapshot().value);
4253
+ (0, react.useEffect)(() => scope.subscribe(() => {
4254
+ setValue(scope.getSnapshot().value);
4255
+ }), [scope]);
4256
+ return value;
4257
+ }
4258
+ function VoicesView(props) {
4259
+ const { api, scope, showToast, onReuseVoice } = props;
4260
+ const cfg = useConfig(scope);
4261
+ const channels = cfg?.channels ?? [];
4262
+ const channelOptions = (0, react.useMemo)(() => channels.filter((channel) => channel.apiUrl.trim() !== ""), [channels]);
4263
+ const [channelId, setChannelId] = (0, react.useState)("");
4264
+ (0, react.useEffect)(() => {
4265
+ if (channelId === "" || !channels.some((channel) => channel.id === channelId)) {
4266
+ const fallback = channels.find((channel) => channel.id === cfg?.defaultChannelId) ?? channels[0];
4267
+ setChannelId(fallback?.id ?? "");
4268
+ }
4269
+ }, [channels, cfg?.defaultChannelId]);
4270
+ const [language, setLanguage] = (0, react.useState)("");
4271
+ const [keyword, setKeyword] = (0, react.useState)("");
4272
+ const [source, setSource] = (0, react.useState)("");
4273
+ const [search, setSearch] = (0, react.useState)("");
4274
+ const [useCase, setUseCase] = (0, react.useState)("");
4275
+ const [accent, setAccent] = (0, react.useState)("");
4276
+ const [gender, setGender] = (0, react.useState)("");
4277
+ const [age, setAge] = (0, react.useState)("");
4278
+ const [locale, setLocale] = (0, react.useState)("");
4279
+ const [category, setCategory] = (0, react.useState)("");
4280
+ const [sort, setSort] = (0, react.useState)("");
4281
+ const [featured, setFeatured] = (0, react.useState)(false);
4282
+ const [freeUsersAllowed, setFreeUsersAllowed] = (0, react.useState)(false);
4283
+ const [voices, setVoices] = (0, react.useState)([]);
4284
+ const [loading, setLoading] = (0, react.useState)(false);
4285
+ const [error, setError] = (0, react.useState)(null);
4286
+ const [note, setNote] = (0, react.useState)(null);
4287
+ const [deletingId, setDeletingId] = (0, react.useState)(null);
4288
+ const load = async () => {
4289
+ const channel = channels.find((item) => item.id === channelId);
4290
+ if (channel === void 0) return;
4291
+ setLoading(true);
4292
+ setError(null);
4293
+ setNote(null);
4294
+ try {
4295
+ const response = await api.voiceList({
4296
+ channel: channel.id,
4297
+ ...language.trim() === "" ? {} : { language: language.trim() },
4298
+ ...keyword.trim() === "" ? {} : { keyword: keyword.trim() },
4299
+ ...source === "" ? {} : { source },
4300
+ ...search.trim() === "" ? {} : { search: search.trim() },
4301
+ ...useCase.trim() === "" ? {} : { use_case: useCase.trim() },
4302
+ ...accent.trim() === "" ? {} : { accent: accent.trim() },
4303
+ ...gender.trim() === "" ? {} : { gender: gender.trim() },
4304
+ ...age.trim() === "" ? {} : { age: age.trim() },
4305
+ ...locale.trim() === "" ? {} : { locale: locale.trim() },
4306
+ ...category.trim() === "" ? {} : { category: category.trim() },
4307
+ ...sort === "" ? {} : { sort },
4308
+ ...featured ? { featured: true } : {},
4309
+ ...freeUsersAllowed ? { free_users_allowed: true } : {}
4310
+ });
4311
+ if (response.ok) {
4312
+ setVoices(response.voices ?? []);
4313
+ setNote(response.note ?? null);
4314
+ } else {
4315
+ setVoices([]);
4316
+ setError(response.message ?? "音色列表拉取失败");
4317
+ }
4318
+ } catch (err) {
4319
+ setVoices([]);
4320
+ setError(err instanceof Error ? err.message : String(err));
4321
+ } finally {
4322
+ setLoading(false);
4323
+ }
4324
+ };
4325
+ (0, react.useEffect)(() => {
4326
+ if (channelId === "") return;
4327
+ load();
4328
+ }, [channelId]);
4329
+ const remove = async (voice) => {
4330
+ if (deletingId !== null) return;
4331
+ if (!window.confirm(`确认删除音色「${voice.name}」(${voice.voice_id})?\n此操作不可逆,删除后无法恢复。`)) return;
4332
+ setDeletingId(voice.voice_id);
4333
+ try {
4334
+ const response = await api.voiceDelete({
4335
+ channel: channelId,
4336
+ voice_id: voice.voice_id,
4337
+ confirm: true
4338
+ });
4339
+ if (response.ok) showToast(`已删除音色 ${voice.name}`);
4340
+ else showToast(response.message ?? "删除失败");
4341
+ } catch (err) {
4342
+ showToast(err instanceof Error ? err.message : String(err));
4343
+ } finally {
4344
+ setDeletingId(null);
4345
+ load();
4346
+ }
4347
+ };
4348
+ const reuse = (voice) => {
4349
+ const ttsModel = channels.find((item) => item.id === channelId)?.models.find((model) => model.category === "tts" || /tts|speech|voice|t2a/i.test(model.alias));
4350
+ onReuseVoice({
4351
+ mode: "tts",
4352
+ voiceId: voice.voice_id,
4353
+ ...ttsModel === void 0 || ttsModel.alias === "" ? {} : { model: ttsModel.alias }
4354
+ });
4355
+ };
4356
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4357
+ className: voices_module_css_default.view,
4358
+ children: [
4359
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4360
+ className: voices_module_css_default.toolbar,
4361
+ children: [
4362
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4363
+ className: voices_module_css_default.field,
4364
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4365
+ className: voices_module_css_default.fieldLabel,
4366
+ children: "厂商 / 渠道"
4367
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("select", {
4368
+ className: voices_module_css_default.select,
4369
+ value: channelId,
4370
+ onChange: (event) => setChannelId(event.target.value),
4371
+ children: channelOptions.map((channel) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4372
+ value: channel.id,
4373
+ children: channel.name
4374
+ }, channel.id))
4375
+ })]
4376
+ }),
4377
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4378
+ className: voices_module_css_default.field,
4379
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4380
+ className: voices_module_css_default.fieldLabel,
4381
+ children: "语言"
4382
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4383
+ className: voices_module_css_default.input,
4384
+ value: language,
4385
+ onChange: (event) => setLanguage(event.target.value),
4386
+ placeholder: "en / zh / ja…"
4387
+ })]
4388
+ }),
4389
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4390
+ className: voices_module_css_default.field,
4391
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4392
+ className: voices_module_css_default.fieldLabel,
4393
+ children: "关键词"
4394
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4395
+ className: voices_module_css_default.input,
4396
+ value: keyword,
4397
+ onChange: (event) => setKeyword(event.target.value),
4398
+ placeholder: "名字/描述/口音…"
4399
+ })]
4400
+ }),
4401
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4402
+ className: voices_module_css_default.field,
4403
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4404
+ className: voices_module_css_default.fieldLabel,
4405
+ children: "来源"
4406
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
4407
+ className: voices_module_css_default.select,
4408
+ value: source,
4409
+ onChange: (event) => setSource(event.target.value),
4410
+ children: [
4411
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4412
+ value: "",
4413
+ children: "全部"
4414
+ }),
4415
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4416
+ value: "system",
4417
+ children: "官方预置"
4418
+ }),
4419
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4420
+ value: "custom",
4421
+ children: "自建设计"
4422
+ }),
4423
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4424
+ value: "owned",
4425
+ children: "账户自有"
4426
+ }),
4427
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4428
+ value: "shared",
4429
+ children: "社区共享"
4430
+ })
4431
+ ]
4432
+ })]
4433
+ }),
4434
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4435
+ type: "button",
4436
+ className: voices_module_css_default.primaryBtn,
4437
+ onClick: () => void load(),
4438
+ disabled: loading,
4439
+ children: [
4440
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchIcon, {}),
4441
+ " ",
4442
+ loading ? "查询中…" : "查询音色"
4443
+ ]
4444
+ })
4445
+ ]
4446
+ }),
4447
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
4448
+ className: voices_module_css_default.advanced,
4449
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", {
4450
+ className: voices_module_css_default.advancedSummary,
4451
+ children: "官方共享库筛选(ElevenLabs /v1/shared-voices,其它渠道无效)"
4452
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4453
+ className: voices_module_css_default.advancedGrid,
4454
+ children: [
4455
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4456
+ className: voices_module_css_default.field,
4457
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4458
+ className: voices_module_css_default.fieldLabel,
4459
+ children: "搜索(search)"
4460
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4461
+ className: voices_module_css_default.input,
4462
+ value: search,
4463
+ onChange: (event) => setSearch(event.target.value)
4464
+ })]
4465
+ }),
4466
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4467
+ className: voices_module_css_default.field,
4468
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4469
+ className: voices_module_css_default.fieldLabel,
4470
+ children: "用途(use_case)"
4471
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4472
+ className: voices_module_css_default.input,
4473
+ value: useCase,
4474
+ onChange: (event) => setUseCase(event.target.value),
4475
+ placeholder: "characters_animation / narration…"
4476
+ })]
4477
+ }),
4478
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4479
+ className: voices_module_css_default.field,
4480
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4481
+ className: voices_module_css_default.fieldLabel,
4482
+ children: "口音(accent)"
4483
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4484
+ className: voices_module_css_default.input,
4485
+ value: accent,
4486
+ onChange: (event) => setAccent(event.target.value),
4487
+ placeholder: "british / american…"
4488
+ })]
4489
+ }),
4490
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4491
+ className: voices_module_css_default.field,
4492
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4493
+ className: voices_module_css_default.fieldLabel,
4494
+ children: "性别(gender)"
4495
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4496
+ className: voices_module_css_default.input,
4497
+ value: gender,
4498
+ onChange: (event) => setGender(event.target.value),
4499
+ placeholder: "male / female"
4500
+ })]
4501
+ }),
4502
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4503
+ className: voices_module_css_default.field,
4504
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4505
+ className: voices_module_css_default.fieldLabel,
4506
+ children: "年龄(age)"
4507
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4508
+ className: voices_module_css_default.input,
4509
+ value: age,
4510
+ onChange: (event) => setAge(event.target.value),
4511
+ placeholder: "adult / young…"
4512
+ })]
4513
+ }),
4514
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4515
+ className: voices_module_css_default.field,
4516
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4517
+ className: voices_module_css_default.fieldLabel,
4518
+ children: "方言(locale)"
4519
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4520
+ className: voices_module_css_default.input,
4521
+ value: locale,
4522
+ onChange: (event) => setLocale(event.target.value),
4523
+ placeholder: "en-us / en-gb…"
4524
+ })]
4525
+ }),
4526
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4527
+ className: voices_module_css_default.field,
4528
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4529
+ className: voices_module_css_default.fieldLabel,
4530
+ children: "分类(category)"
4531
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4532
+ className: voices_module_css_default.input,
4533
+ value: category,
4534
+ onChange: (event) => setCategory(event.target.value),
4535
+ placeholder: "animation…"
4536
+ })]
4537
+ }),
4538
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4539
+ className: voices_module_css_default.field,
4540
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4541
+ className: voices_module_css_default.fieldLabel,
4542
+ children: "排序(sort)"
4543
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
4544
+ className: voices_module_css_default.select,
4545
+ value: sort,
4546
+ onChange: (event) => setSort(event.target.value),
4547
+ children: [
4548
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4549
+ value: "",
4550
+ children: "默认"
4551
+ }),
4552
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4553
+ value: "most_used",
4554
+ children: "most_used"
4555
+ }),
4556
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4557
+ value: "random",
4558
+ children: "random"
4559
+ }),
4560
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4561
+ value: "oldest",
4562
+ children: "oldest"
4563
+ }),
4564
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
4565
+ value: "newest",
4566
+ children: "newest"
4567
+ })
4568
+ ]
4569
+ })]
4570
+ }),
4571
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4572
+ className: voices_module_css_default.checkRow,
4573
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4574
+ type: "checkbox",
4575
+ checked: featured,
4576
+ onChange: (event) => setFeatured(event.target.checked)
4577
+ }), " 仅精选(featured)"]
4578
+ }),
4579
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
4580
+ className: voices_module_css_default.checkRow,
4581
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
4582
+ type: "checkbox",
4583
+ checked: freeUsersAllowed,
4584
+ onChange: (event) => setFreeUsersAllowed(event.target.checked)
4585
+ }), " 仅免费用户可用"]
4586
+ })
4587
+ ]
4588
+ })]
4589
+ }),
4590
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4591
+ className: voices_module_css_default.stateLine,
4592
+ children: [
4593
+ loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4594
+ className: voices_module_css_default.stateNote,
4595
+ children: "正在拉取音色列表…"
4596
+ }) : null,
4597
+ !loading && error !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4598
+ className: voices_module_css_default.stateNote,
4599
+ "data-error": true,
4600
+ children: ["⚠ ", error]
4601
+ }) : null,
4602
+ !loading && note !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4603
+ className: voices_module_css_default.stateNote,
4604
+ children: note
4605
+ }) : null,
4606
+ !loading && error === null ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4607
+ className: voices_module_css_default.count,
4608
+ children: [voices.length, " 个音色"]
4609
+ }) : null
4610
+ ]
4611
+ }),
4612
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4613
+ className: voices_module_css_default.list,
4614
+ children: [voices.map((voice) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4615
+ className: voices_module_css_default.card,
4616
+ children: [
4617
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4618
+ className: voices_module_css_default.cardHead,
4619
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
4620
+ className: voices_module_css_default.voiceName,
4621
+ title: voice.name,
4622
+ children: voice.name
4623
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4624
+ className: voices_module_css_default.badge,
4625
+ "data-source": voice.source,
4626
+ title: voice.deletable ? "可删除(自建音色)" : "只读(官方/共享音色不可删)",
4627
+ children: [SOURCE_LABELS[voice.source], voice.deletable ? "" : " · 只读"]
4628
+ })]
4629
+ }),
4630
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4631
+ className: voices_module_css_default.meta,
4632
+ children: [
4633
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4634
+ className: voices_module_css_default.voiceId,
4635
+ title: voice.voice_id,
4636
+ children: ["ID: ", voice.voice_id]
4637
+ }),
4638
+ voice.language === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: voice.language }),
4639
+ voice.accent === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: voice.accent }),
4640
+ voice.gender === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: voice.gender }),
4641
+ voice.age === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: voice.age }),
4642
+ voice.use_case === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: voice.use_case })
4643
+ ]
4644
+ }),
4645
+ voice.description === void 0 || voice.description === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
4646
+ className: voices_module_css_default.description,
4647
+ children: voice.description
4648
+ }),
4649
+ voice.preview_url === void 0 || voice.preview_url === "" ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4650
+ className: voices_module_css_default.preview,
4651
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AudioPlayer, {
4652
+ src: voice.preview_url,
4653
+ compact: true
4654
+ })
4655
+ }),
4656
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4657
+ className: voices_module_css_default.actions,
4658
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4659
+ type: "button",
4660
+ className: voices_module_css_default.useBtn,
4661
+ onClick: () => reuse(voice),
4662
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(MicIcon, {}), " 用此音色生成"]
4663
+ }), voice.deletable ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4664
+ type: "button",
4665
+ className: voices_module_css_default.deleteBtn,
4666
+ disabled: deletingId !== null,
4667
+ onClick: () => void remove(voice),
4668
+ children: [
4669
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TrashIcon, {}),
4670
+ " ",
4671
+ deletingId === voice.voice_id ? "删除中…" : "删除"
4672
+ ]
4673
+ }) : null]
4674
+ })
4675
+ ]
4676
+ }, `${voice.source}:${voice.voice_id}`)), !loading && error === null && voices.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4677
+ className: voices_module_css_default.empty,
4678
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckIcon, {}), " 没有匹配的音色——请调整筛选条件,或该渠道不支持音色库接口(部分网关不映射 /v1/voices)。"]
4679
+ }) : null]
4680
+ })
4681
+ ]
4682
+ });
4683
+ }
4684
+ //#endregion
4164
4685
  //#region src/client/AudioGenPanel.tsx
4165
4686
  /**
4166
4687
  * The AI 音频 panel shell: header with 生成 / 资源库 tabs, toast host, and
@@ -4178,6 +4699,15 @@ window.__ModuleLoader__.load({
4178
4699
  if (toastTimer.current !== void 0) window.clearTimeout(toastTimer.current);
4179
4700
  toastTimer.current = window.setTimeout(() => setToast(null), 2400);
4180
4701
  };
4702
+ const applyReuseVoice = (payload) => {
4703
+ setReuse({
4704
+ nonce: Date.now(),
4705
+ mode: "tts",
4706
+ voiceId: payload.voiceId,
4707
+ ...payload.model === void 0 ? {} : { model: payload.model }
4708
+ });
4709
+ setTab("studio");
4710
+ };
4181
4711
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
4182
4712
  className: audio_panel_module_css_default.panel,
4183
4713
  children: [
@@ -4190,31 +4720,47 @@ window.__ModuleLoader__.load({
4190
4720
  className: audio_panel_module_css_default.tabs,
4191
4721
  role: "tablist",
4192
4722
  "aria-label": "AI 音频",
4193
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4194
- type: "button",
4195
- role: "tab",
4196
- "aria-selected": tab === "studio",
4197
- className: audio_panel_module_css_default.tab,
4198
- "data-active": tab === "studio" ? "true" : "false",
4199
- onClick: () => setTab("studio"),
4200
- children: [
4201
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridIcon, {}),
4202
- " ",
4203
- tt("tab.studio")
4204
- ]
4205
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4206
- type: "button",
4207
- role: "tab",
4208
- "aria-selected": tab === "library",
4209
- className: audio_panel_module_css_default.tab,
4210
- "data-active": tab === "library" ? "true" : "false",
4211
- onClick: () => setTab("library"),
4212
- children: [
4213
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListIcon, {}),
4214
- " ",
4215
- tt("tab.library")
4216
- ]
4217
- })]
4723
+ children: [
4724
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4725
+ type: "button",
4726
+ role: "tab",
4727
+ "aria-selected": tab === "studio",
4728
+ className: audio_panel_module_css_default.tab,
4729
+ "data-active": tab === "studio" ? "true" : "false",
4730
+ onClick: () => setTab("studio"),
4731
+ children: [
4732
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridIcon, {}),
4733
+ " ",
4734
+ tt("tab.studio")
4735
+ ]
4736
+ }),
4737
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4738
+ type: "button",
4739
+ role: "tab",
4740
+ "aria-selected": tab === "library",
4741
+ className: audio_panel_module_css_default.tab,
4742
+ "data-active": tab === "library" ? "true" : "false",
4743
+ onClick: () => setTab("library"),
4744
+ children: [
4745
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ListIcon, {}),
4746
+ " ",
4747
+ tt("tab.library")
4748
+ ]
4749
+ }),
4750
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
4751
+ type: "button",
4752
+ role: "tab",
4753
+ "aria-selected": tab === "voices",
4754
+ className: audio_panel_module_css_default.tab,
4755
+ "data-active": tab === "voices" ? "true" : "false",
4756
+ onClick: () => setTab("voices"),
4757
+ children: [
4758
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MicIcon, {}),
4759
+ " ",
4760
+ tt("tab.voices")
4761
+ ]
4762
+ })
4763
+ ]
4218
4764
  })]
4219
4765
  }),
4220
4766
  tab === "studio" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StudioView, {
@@ -4223,7 +4769,7 @@ window.__ModuleLoader__.load({
4223
4769
  reuse,
4224
4770
  onLibraryChanged: () => setLibraryRev((revision) => revision + 1),
4225
4771
  showToast
4226
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LibraryView, {
4772
+ }) : tab === "library" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LibraryView, {
4227
4773
  api,
4228
4774
  revision: libraryRev,
4229
4775
  showToast,
@@ -4237,6 +4783,11 @@ window.__ModuleLoader__.load({
4237
4783
  });
4238
4784
  setTab("studio");
4239
4785
  }
4786
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VoicesView, {
4787
+ api,
4788
+ scope,
4789
+ showToast,
4790
+ onReuseVoice: applyReuseVoice
4240
4791
  }),
4241
4792
  toast !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4242
4793
  className: audio_panel_module_css_default.toast,
@@ -4258,167 +4809,167 @@ window.__ModuleLoader__.load({
4258
4809
  document.head.appendChild(tag);
4259
4810
  }
4260
4811
  var panel_module_css_default = {
4261
- "taskTray": "rwa6qG_taskTray",
4262
- "compareToggle": "rwa6qG_compareToggle",
4263
- "lightboxIndex": "rwa6qG_lightboxIndex",
4264
- "panelHeader": "rwa6qG_panelHeader",
4265
- "galleryFilters": "rwa6qG_galleryFilters",
4266
- "entryIcon": "rwa6qG_entryIcon",
4267
- "config": "rwa6qG_config",
4268
- "historyHeader": "rwa6qG_historyHeader",
4812
+ "comparisonFullscreen": "rwa6qG_comparisonFullscreen",
4813
+ "updateRelease": "rwa6qG_updateRelease",
4814
+ "galleryAdd": "rwa6qG_galleryAdd",
4815
+ "lightboxActions": "rwa6qG_lightboxActions",
4816
+ "configGuide": "rwa6qG_configGuide",
4817
+ "bigSpinner": "rwa6qG_bigSpinner",
4818
+ "galleryBadge": "rwa6qG_galleryBadge",
4819
+ "galleryRatioList": "rwa6qG_galleryRatioList",
4820
+ "galleryImage": "rwa6qG_galleryImage",
4821
+ "canvasError": "rwa6qG_canvasError",
4822
+ "galleryFilterNote": "rwa6qG_galleryFilterNote",
4823
+ "lightboxNav": "rwa6qG_lightboxNav",
4824
+ "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
4825
+ "galleryAvatar": "rwa6qG_galleryAvatar",
4826
+ "galleryTagEditor": "rwa6qG_galleryTagEditor",
4827
+ "taskRow": "rwa6qG_taskRow",
4828
+ "historyThumb": "rwa6qG_historyThumb",
4829
+ "imageCaption": "rwa6qG_imageCaption",
4269
4830
  "compareModelChoices": "rwa6qG_compareModelChoices",
4831
+ "galleryImageButton": "rwa6qG_galleryImageButton",
4270
4832
  "modeRow": "rwa6qG_modeRow",
4271
- "promptCount": "rwa6qG_promptCount",
4272
- "grid": "rwa6qG_grid",
4273
- "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
4833
+ "optionPill": "rwa6qG_optionPill",
4274
4834
  "canvasEmptyIcon": "rwa6qG_canvasEmptyIcon",
4275
- "galleryImageButton": "rwa6qG_galleryImageButton",
4276
- "modelMenuItem": "rwa6qG_modelMenuItem",
4277
- "updateBanner": "rwa6qG_updateBanner",
4278
- "modelMenu": "rwa6qG_modelMenu",
4279
- "bigSpinner": "rwa6qG_bigSpinner",
4280
- "dshImageGenToastIn": "rwa6qG_dshImageGenToastIn",
4281
- "lightboxNav": "rwa6qG_lightboxNav",
4282
- "galleryRatio": "rwa6qG_galleryRatio",
4283
- "galleryFilterNote": "rwa6qG_galleryFilterNote",
4284
- "gallerySelectionClear": "rwa6qG_gallerySelectionClear",
4285
- "referenceActions": "rwa6qG_referenceActions",
4286
- "historyEmpty": "rwa6qG_historyEmpty",
4287
- "modelLabel": "rwa6qG_modelLabel",
4288
- "canvasBody": "rwa6qG_canvasBody",
4289
- "lightboxStage": "rwa6qG_lightboxStage",
4290
- "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
4291
- "comparisonBoard": "rwa6qG_comparisonBoard",
4835
+ "panel": "rwa6qG_panel",
4292
4836
  "view": "rwa6qG_view",
4293
- "taskTrayChevron": "rwa6qG_taskTrayChevron",
4294
- "historyPrompt": "rwa6qG_historyPrompt",
4295
- "galleryTagFilter": "rwa6qG_galleryTagFilter",
4296
- "lightboxClose": "rwa6qG_lightboxClose",
4297
- "galleryImage": "rwa6qG_galleryImage",
4298
- "galleryTagEditor": "rwa6qG_galleryTagEditor",
4299
4837
  "taskTrayHeader": "rwa6qG_taskTrayHeader",
4300
- "card": "rwa6qG_card",
4301
- "canvasStateTitle": "rwa6qG_canvasStateTitle",
4302
- "lightboxEdit": "rwa6qG_lightboxEdit",
4303
- "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
4304
- "paramHint": "rwa6qG_paramHint",
4305
- "updateActions": "rwa6qG_updateActions",
4306
- "generateButton": "rwa6qG_generateButton",
4307
- "historyMeta": "rwa6qG_historyMeta",
4308
- "galleryFilterCount": "rwa6qG_galleryFilterCount",
4309
- "entry": "rwa6qG_entry",
4310
- "panelHeading": "rwa6qG_panelHeading",
4838
+ "lightboxDownload": "rwa6qG_lightboxDownload",
4839
+ "gallerySelectionBar": "rwa6qG_gallerySelectionBar",
4840
+ "taskTrayClose": "rwa6qG_taskTrayClose",
4841
+ "paramGroup": "rwa6qG_paramGroup",
4842
+ "uploadHint": "rwa6qG_uploadHint",
4843
+ "lightbox": "rwa6qG_lightbox",
4844
+ "configScroll": "rwa6qG_configScroll",
4845
+ "zoomHint": "rwa6qG_zoomHint",
4846
+ "comparisonGrid": "rwa6qG_comparisonGrid",
4847
+ "galleryWorkspace": "rwa6qG_galleryWorkspace",
4311
4848
  "taskRows": "rwa6qG_taskRows",
4312
- "connectionDot": "rwa6qG_connectionDot",
4313
- "entryLabel": "rwa6qG_entryLabel",
4314
- "historySearch": "rwa6qG_historySearch",
4315
- "uploadBox": "rwa6qG_uploadBox",
4316
- "galleryBulkButton": "rwa6qG_galleryBulkButton",
4317
- "taskRow": "rwa6qG_taskRow",
4318
- "canvasStateHint": "rwa6qG_canvasStateHint",
4319
- "history": "rwa6qG_history",
4320
- "panel": "rwa6qG_panel",
4849
+ "optionGrid": "rwa6qG_optionGrid",
4850
+ "historyList": "rwa6qG_historyList",
4321
4851
  "canvasMeta": "rwa6qG_canvasMeta",
4322
- "imageCaption": "rwa6qG_imageCaption",
4323
- "spinner": "rwa6qG_spinner",
4852
+ "download": "rwa6qG_download",
4853
+ "historyAction": "rwa6qG_historyAction",
4854
+ "lightboxEdit": "rwa6qG_lightboxEdit",
4855
+ "comparisonBoard": "rwa6qG_comparisonBoard",
4856
+ "galleryCard": "rwa6qG_galleryCard",
4857
+ "panelHeading": "rwa6qG_panelHeading",
4324
4858
  "studio": "rwa6qG_studio",
4325
- "lightboxTool": "rwa6qG_lightboxTool",
4326
- "githubLink": "rwa6qG_githubLink",
4327
- "paramLabel": "rwa6qG_paramLabel",
4328
- "galleryWorkspace": "rwa6qG_galleryWorkspace",
4329
- "galleryCount": "rwa6qG_galleryCount",
4330
- "galleryToolbarActions": "rwa6qG_galleryToolbarActions",
4331
- "comparisonGrid": "rwa6qG_comparisonGrid",
4332
- "lightbox": "rwa6qG_lightbox",
4333
- "gallerySort": "rwa6qG_gallerySort",
4334
- "historyMain": "rwa6qG_historyMain",
4335
- "historyFilters": "rwa6qG_historyFilters",
4336
- "taskTrayClose": "rwa6qG_taskTrayClose",
4337
- "historyItem": "rwa6qG_historyItem",
4338
- "lightboxFigure": "rwa6qG_lightboxFigure",
4339
- "hiddenFile": "rwa6qG_hiddenFile",
4340
- "zoomHint": "rwa6qG_zoomHint",
4341
- "gallerySelectionBar": "rwa6qG_gallerySelectionBar",
4859
+ "updateBanner": "rwa6qG_updateBanner",
4860
+ "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
4861
+ "gallerySelectionClear": "rwa6qG_gallerySelectionClear",
4862
+ "enhanceButton": "rwa6qG_enhanceButton",
4863
+ "modelMenuItem": "rwa6qG_modelMenuItem",
4342
4864
  "historyInfo": "rwa6qG_historyInfo",
4343
- "optionRow": "rwa6qG_optionRow",
4344
- "connectionStatus": "rwa6qG_connectionStatus",
4345
- "taskTrayCount": "rwa6qG_taskTrayCount",
4346
- "historyActions": "rwa6qG_historyActions",
4347
- "lightboxActions": "rwa6qG_lightboxActions",
4348
- "galleryMasonry": "rwa6qG_galleryMasonry",
4349
- "galleryAdd": "rwa6qG_galleryAdd",
4350
- "galleryCardInfo": "rwa6qG_galleryCardInfo",
4351
- "galleryBadge": "rwa6qG_galleryBadge",
4352
- "lightboxDownload": "rwa6qG_lightboxDownload",
4353
- "galleryCard": "rwa6qG_galleryCard",
4354
- "historyTitle": "rwa6qG_historyTitle",
4355
- "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
4356
- "galleryToast": "rwa6qG_galleryToast",
4357
- "download": "rwa6qG_download",
4358
- "canvasState": "rwa6qG_canvasState",
4359
- "galleryTagEdit": "rwa6qG_galleryTagEdit",
4360
- "gallerySearch": "rwa6qG_gallerySearch",
4361
- "taskPrompt": "rwa6qG_taskPrompt",
4362
- "lightboxCaption": "rwa6qG_lightboxCaption",
4363
- "comparisonImageButton": "rwa6qG_comparisonImageButton",
4364
- "modePill": "rwa6qG_modePill",
4865
+ "referenceImage": "rwa6qG_referenceImage",
4866
+ "grid": "rwa6qG_grid",
4867
+ "historySearch": "rwa6qG_historySearch",
4868
+ "canvasStateTitle": "rwa6qG_canvasStateTitle",
4869
+ "panelTitle": "rwa6qG_panelTitle",
4870
+ "dshImageGenToastIn": "rwa6qG_dshImageGenToastIn",
4871
+ "galleryMasonry": "rwa6qG_galleryMasonry",
4872
+ "canvasState": "rwa6qG_canvasState",
4873
+ "galleryToast": "rwa6qG_galleryToast",
4874
+ "hiddenFile": "rwa6qG_hiddenFile",
4875
+ "gallerySelect": "rwa6qG_gallerySelect",
4876
+ "galleryCardInfo": "rwa6qG_galleryCardInfo",
4877
+ "canvasStateHint": "rwa6qG_canvasStateHint",
4365
4878
  "updateText": "rwa6qG_updateText",
4366
- "comparisonFullscreen": "rwa6qG_comparisonFullscreen",
4367
- "historyAction": "rwa6qG_historyAction",
4368
- "galleryRemove": "rwa6qG_galleryRemove",
4369
- "taskTrayToggle": "rwa6qG_taskTrayToggle",
4370
- "templatesButton": "rwa6qG_templatesButton",
4879
+ "compareControl": "rwa6qG_compareControl",
4880
+ "lightboxCopy": "rwa6qG_lightboxCopy",
4881
+ "galleryCount": "rwa6qG_galleryCount",
4882
+ "lightboxIndex": "rwa6qG_lightboxIndex",
4883
+ "promptCount": "rwa6qG_promptCount",
4371
4884
  "galleryToolbar": "rwa6qG_galleryToolbar",
4372
- "galleryRatioList": "rwa6qG_galleryRatioList",
4373
- "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
4374
- "gallerySelect": "rwa6qG_gallerySelect",
4375
- "modelSelect": "rwa6qG_modelSelect",
4885
+ "paramLabel": "rwa6qG_paramLabel",
4376
4886
  "galleryFilter": "rwa6qG_galleryFilter",
4377
- "paramGroup": "rwa6qG_paramGroup",
4887
+ "galleryTagInput": "rwa6qG_galleryTagInput",
4888
+ "templatesButton": "rwa6qG_templatesButton",
4889
+ "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
4890
+ "connectionStatus": "rwa6qG_connectionStatus",
4891
+ "historyClear": "rwa6qG_historyClear",
4378
4892
  "galleryClear": "rwa6qG_galleryClear",
4379
- "optionPill": "rwa6qG_optionPill",
4380
- "enhanceButton": "rwa6qG_enhanceButton",
4381
- "panelTitle": "rwa6qG_panelTitle",
4382
- "galleryViewToggle": "rwa6qG_galleryViewToggle",
4383
- "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
4384
- "galleryAvatar": "rwa6qG_galleryAvatar",
4385
- "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
4386
- "historyList": "rwa6qG_historyList",
4387
- "prompt": "rwa6qG_prompt",
4388
- "optionGrid": "rwa6qG_optionGrid",
4389
- "lightboxMeta": "rwa6qG_lightboxMeta",
4390
4893
  "comparisonFullscreenGrid": "rwa6qG_comparisonFullscreenGrid",
4391
- "footer": "rwa6qG_footer",
4392
- "referenceImage": "rwa6qG_referenceImage",
4393
- "canvas": "rwa6qG_canvas",
4894
+ "uploadIcon": "rwa6qG_uploadIcon",
4895
+ "generateInner": "rwa6qG_generateInner",
4896
+ "galleryTagFilter": "rwa6qG_galleryTagFilter",
4897
+ "history": "rwa6qG_history",
4898
+ "galleryHeading": "rwa6qG_galleryHeading",
4899
+ "spinner": "rwa6qG_spinner",
4394
4900
  "historyThumbPlaceholder": "rwa6qG_historyThumbPlaceholder",
4395
- "configGuide": "rwa6qG_configGuide",
4396
- "reference": "rwa6qG_reference",
4901
+ "optionRow": "rwa6qG_optionRow",
4902
+ "modelLabel": "rwa6qG_modelLabel",
4903
+ "historyMain": "rwa6qG_historyMain",
4904
+ "prompt": "rwa6qG_prompt",
4905
+ "historyEmpty": "rwa6qG_historyEmpty",
4906
+ "lightboxMeta": "rwa6qG_lightboxMeta",
4907
+ "referenceActions": "rwa6qG_referenceActions",
4908
+ "promptFooter": "rwa6qG_promptFooter",
4909
+ "galleryRatio": "rwa6qG_galleryRatio",
4910
+ "modelMenu": "rwa6qG_modelMenu",
4911
+ "comparisonImageButton": "rwa6qG_comparisonImageButton",
4397
4912
  "lightboxImage": "rwa6qG_lightboxImage",
4913
+ "githubLink": "rwa6qG_githubLink",
4914
+ "galleryRemove": "rwa6qG_galleryRemove",
4915
+ "historyMeta": "rwa6qG_historyMeta",
4916
+ "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
4917
+ "historyTitle": "rwa6qG_historyTitle",
4918
+ "connectionDot": "rwa6qG_connectionDot",
4919
+ "modePill": "rwa6qG_modePill",
4920
+ "galleryTagEdit": "rwa6qG_galleryTagEdit",
4921
+ "historyItem": "rwa6qG_historyItem",
4922
+ "taskTrayToggle": "rwa6qG_taskTrayToggle",
4923
+ "configGuideBody": "rwa6qG_configGuideBody",
4924
+ "gallerySearch": "rwa6qG_gallerySearch",
4925
+ "modelMenuList": "rwa6qG_modelMenuList",
4926
+ "lightboxStage": "rwa6qG_lightboxStage",
4927
+ "gallerySort": "rwa6qG_gallerySort",
4928
+ "historyHeader": "rwa6qG_historyHeader",
4929
+ "lightboxFigure": "rwa6qG_lightboxFigure",
4930
+ "reference": "rwa6qG_reference",
4931
+ "modelSelect": "rwa6qG_modelSelect",
4932
+ "galleryFilters": "rwa6qG_galleryFilters",
4933
+ "footer": "rwa6qG_footer",
4398
4934
  "taskStatus": "rwa6qG_taskStatus",
4399
- "generateInner": "rwa6qG_generateInner",
4935
+ "entryIcon": "rwa6qG_entryIcon",
4936
+ "historyActions": "rwa6qG_historyActions",
4937
+ "generateButton": "rwa6qG_generateButton",
4938
+ "uploadBox": "rwa6qG_uploadBox",
4939
+ "canvasBody": "rwa6qG_canvasBody",
4940
+ "lightboxTool": "rwa6qG_lightboxTool",
4941
+ "galleryViewToggle": "rwa6qG_galleryViewToggle",
4942
+ "lightboxTools": "rwa6qG_lightboxTools",
4943
+ "taskPrompt": "rwa6qG_taskPrompt",
4944
+ "galleryCardFooter": "rwa6qG_galleryCardFooter",
4945
+ "taskTrayCount": "rwa6qG_taskTrayCount",
4400
4946
  "imageCard": "rwa6qG_imageCard",
4401
- "historyThumb": "rwa6qG_historyThumb",
4402
- "compareControl": "rwa6qG_compareControl",
4403
- "galleryTags": "rwa6qG_galleryTags",
4404
- "promptFooter": "rwa6qG_promptFooter",
4405
- "uploadIcon": "rwa6qG_uploadIcon",
4406
- "modelMenuList": "rwa6qG_modelMenuList",
4407
- "galleryTagInput": "rwa6qG_galleryTagInput",
4408
- "updateRelease": "rwa6qG_updateRelease",
4409
- "configScroll": "rwa6qG_configScroll",
4410
- "modelWrap": "rwa6qG_modelWrap",
4947
+ "historyFilters": "rwa6qG_historyFilters",
4948
+ "panelHeader": "rwa6qG_panelHeader",
4949
+ "updateActions": "rwa6qG_updateActions",
4950
+ "config": "rwa6qG_config",
4951
+ "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
4952
+ "galleryBulkButton": "rwa6qG_galleryBulkButton",
4953
+ "taskTray": "rwa6qG_taskTray",
4411
4954
  "image": "rwa6qG_image",
4955
+ "compareToggle": "rwa6qG_compareToggle",
4956
+ "entry": "rwa6qG_entry",
4957
+ "entryLabel": "rwa6qG_entryLabel",
4958
+ "taskTrayChevron": "rwa6qG_taskTrayChevron",
4959
+ "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
4960
+ "paramHint": "rwa6qG_paramHint",
4961
+ "lightboxCaption": "rwa6qG_lightboxCaption",
4962
+ "historyPrompt": "rwa6qG_historyPrompt",
4963
+ "galleryToolbarActions": "rwa6qG_galleryToolbarActions",
4964
+ "card": "rwa6qG_card",
4965
+ "canvas": "rwa6qG_canvas",
4966
+ "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
4412
4967
  "gallerySelectMode": "rwa6qG_gallerySelectMode",
4413
- "galleryCardFooter": "rwa6qG_galleryCardFooter",
4414
- "canvasError": "rwa6qG_canvasError",
4415
- "lightboxTools": "rwa6qG_lightboxTools",
4416
- "configGuideBody": "rwa6qG_configGuideBody",
4417
- "uploadHint": "rwa6qG_uploadHint",
4418
- "historyClear": "rwa6qG_historyClear",
4419
- "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
4420
- "lightboxCopy": "rwa6qG_lightboxCopy",
4421
- "galleryHeading": "rwa6qG_galleryHeading"
4968
+ "galleryTags": "rwa6qG_galleryTags",
4969
+ "lightboxClose": "rwa6qG_lightboxClose",
4970
+ "galleryFilterCount": "rwa6qG_galleryFilterCount",
4971
+ "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
4972
+ "modelWrap": "rwa6qG_modelWrap"
4422
4973
  };
4423
4974
  //#endregion
4424
4975
  //#region src/client/mount.tsx
@@ -5075,79 +5626,79 @@ window.__ModuleLoader__.load({
5075
5626
  document.head.appendChild(tag);
5076
5627
  }
5077
5628
  var settings_card_module_css_default = {
5078
- "save": "zmjoSq_save",
5079
- "modelRowRemove": "zmjoSq_modelRowRemove",
5080
- "addModel": "zmjoSq_addModel",
5629
+ "reset": "zmjoSq_reset",
5630
+ "card": "zmjoSq_card",
5631
+ "channelEmpty": "zmjoSq_channelEmpty",
5632
+ "label": "zmjoSq_label",
5633
+ "channelSection": "zmjoSq_channelSection",
5634
+ "body": "zmjoSq_body",
5635
+ "candidateList": "zmjoSq_candidateList",
5636
+ "channelAction": "zmjoSq_channelAction",
5637
+ "field": "zmjoSq_field",
5638
+ "customSettingsBody": "zmjoSq_customSettingsBody",
5639
+ "sectionTitle": "zmjoSq_sectionTitle",
5640
+ "linkButton": "zmjoSq_linkButton",
5641
+ "channelList": "zmjoSq_channelList",
5642
+ "sectionHint": "zmjoSq_sectionHint",
5643
+ "channelHost": "zmjoSq_channelHost",
5644
+ "candidateTitle": "zmjoSq_candidateTitle",
5081
5645
  "modelEmpty": "zmjoSq_modelEmpty",
5082
- "modelCatalogTools": "zmjoSq_modelCatalogTools",
5083
- "channelAdd": "zmjoSq_channelAdd",
5646
+ "candidate": "zmjoSq_candidate",
5084
5647
  "channelMain": "zmjoSq_channelMain",
5085
- "sectionHeader": "zmjoSq_sectionHeader",
5086
- "channelDanger": "zmjoSq_channelDanger",
5648
+ "candidateActions": "zmjoSq_candidateActions",
5649
+ "modelInput": "zmjoSq_modelInput",
5650
+ "header": "zmjoSq_header",
5651
+ "channelDotReady": "zmjoSq_channelDotReady",
5652
+ "modelCatalogHead": "zmjoSq_modelCatalogHead",
5653
+ "save": "zmjoSq_save",
5654
+ "select": "zmjoSq_select",
5655
+ "modelRow": "zmjoSq_modelRow",
5656
+ "modelCatalogTools": "zmjoSq_modelCatalogTools",
5087
5657
  "modelBadge": "zmjoSq_modelBadge",
5088
- "channelRow": "zmjoSq_channelRow",
5089
- "candidateHead": "zmjoSq_candidateHead",
5090
- "sectionHint": "zmjoSq_sectionHint",
5091
- "channelAddRow": "zmjoSq_channelAddRow",
5092
- "readOnly": "zmjoSq_readOnly",
5093
- "candidateTitle": "zmjoSq_candidateTitle",
5094
- "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
5095
- "card": "zmjoSq_card",
5096
- "editorHeader": "zmjoSq_editorHeader",
5658
+ "pending": "zmjoSq_pending",
5097
5659
  "description": "zmjoSq_description",
5098
- "select": "zmjoSq_select",
5660
+ "channelBadge": "zmjoSq_channelBadge",
5661
+ "modelArrow": "zmjoSq_modelArrow",
5662
+ "editorFooter": "zmjoSq_editorFooter",
5663
+ "channelRow": "zmjoSq_channelRow",
5099
5664
  "customSettingsSummary": "zmjoSq_customSettingsSummary",
5665
+ "sectionHeader": "zmjoSq_sectionHeader",
5666
+ "discard": "zmjoSq_discard",
5667
+ "candidateHead": "zmjoSq_candidateHead",
5668
+ "deleteConfirmText": "zmjoSq_deleteConfirmText",
5669
+ "editorWrap": "zmjoSq_editorWrap",
5670
+ "footer": "zmjoSq_footer",
5671
+ "modelCategorySelect": "zmjoSq_modelCategorySelect",
5672
+ "chevronOpen": "zmjoSq_chevronOpen",
5673
+ "editorTitle": "zmjoSq_editorTitle",
5674
+ "channelDotWarn": "zmjoSq_channelDotWarn",
5100
5675
  "input": "zmjoSq_input",
5101
- "channelSection": "zmjoSq_channelSection",
5102
5676
  "channelMeta": "zmjoSq_channelMeta",
5103
5677
  "editorTag": "zmjoSq_editorTag",
5104
5678
  "modelCatalogTitle": "zmjoSq_modelCatalogTitle",
5105
- "candidate": "zmjoSq_candidate",
5106
- "channelEmpty": "zmjoSq_channelEmpty",
5107
- "editorWrap": "zmjoSq_editorWrap",
5108
- "link": "zmjoSq_link",
5109
- "editorTitle": "zmjoSq_editorTitle",
5110
- "chevron": "zmjoSq_chevron",
5111
- "channelList": "zmjoSq_channelList",
5112
- "customSettingsBody": "zmjoSq_customSettingsBody",
5113
- "modelCatalog": "zmjoSq_modelCatalog",
5114
- "modelArrow": "zmjoSq_modelArrow",
5115
- "channelName": "zmjoSq_channelName",
5116
- "candidatePanel": "zmjoSq_candidatePanel",
5117
- "candidateId": "zmjoSq_candidateId",
5118
- "linkButton": "zmjoSq_linkButton",
5119
- "channelBadge": "zmjoSq_channelBadge",
5120
- "candidateLabel": "zmjoSq_candidateLabel",
5121
- "modelInput": "zmjoSq_modelInput",
5122
5679
  "modelRows": "zmjoSq_modelRows",
5123
5680
  "customSettings": "zmjoSq_customSettings",
5124
- "name": "zmjoSq_name",
5125
- "label": "zmjoSq_label",
5126
- "channelEditor": "zmjoSq_channelEditor",
5127
- "modelCatalogHead": "zmjoSq_modelCatalogHead",
5681
+ "addModel": "zmjoSq_addModel",
5682
+ "candidatePanel": "zmjoSq_candidatePanel",
5683
+ "candidateLabel": "zmjoSq_candidateLabel",
5684
+ "editorHeader": "zmjoSq_editorHeader",
5128
5685
  "failed": "zmjoSq_failed",
5129
- "editorFooter": "zmjoSq_editorFooter",
5130
- "candidateList": "zmjoSq_candidateList",
5131
- "field": "zmjoSq_field",
5132
- "candidateActions": "zmjoSq_candidateActions",
5133
- "chevronOpen": "zmjoSq_chevronOpen",
5134
- "footer": "zmjoSq_footer",
5135
- "deleteConfirmText": "zmjoSq_deleteConfirmText",
5136
- "body": "zmjoSq_body",
5137
- "channelDotWarn": "zmjoSq_channelDotWarn",
5138
- "discard": "zmjoSq_discard",
5139
- "channelHost": "zmjoSq_channelHost",
5140
5686
  "head": "zmjoSq_head",
5141
- "reset": "zmjoSq_reset",
5142
- "channelDotReady": "zmjoSq_channelDotReady",
5143
- "modelCategorySelect": "zmjoSq_modelCategorySelect",
5687
+ "channelName": "zmjoSq_channelName",
5688
+ "candidateId": "zmjoSq_candidateId",
5689
+ "detectOk": "zmjoSq_detectOk",
5690
+ "channelDanger": "zmjoSq_channelDanger",
5691
+ "modelCatalog": "zmjoSq_modelCatalog",
5692
+ "channelAdd": "zmjoSq_channelAdd",
5144
5693
  "headText": "zmjoSq_headText",
5145
- "header": "zmjoSq_header",
5146
- "pending": "zmjoSq_pending",
5147
- "modelRow": "zmjoSq_modelRow",
5148
- "sectionTitle": "zmjoSq_sectionTitle",
5149
- "channelAction": "zmjoSq_channelAction",
5150
- "detectOk": "zmjoSq_detectOk"
5694
+ "name": "zmjoSq_name",
5695
+ "modelRowRemove": "zmjoSq_modelRowRemove",
5696
+ "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
5697
+ "chevron": "zmjoSq_chevron",
5698
+ "readOnly": "zmjoSq_readOnly",
5699
+ "channelAddRow": "zmjoSq_channelAddRow",
5700
+ "channelEditor": "zmjoSq_channelEditor",
5701
+ "link": "zmjoSq_link"
5151
5702
  };
5152
5703
  //#endregion
5153
5704
  //#region src/client/SettingsCard.tsx
@@ -6164,16 +6715,16 @@ window.__ModuleLoader__.load({
6164
6715
  }
6165
6716
  var audio_toolview_module_css_default = {
6166
6717
  "icon": "_7K1QKa_icon",
6167
- "audioRow": "_7K1QKa_audioRow",
6718
+ "audio": "_7K1QKa_audio",
6168
6719
  "empty": "_7K1QKa_empty",
6720
+ "status": "_7K1QKa_status",
6169
6721
  "audios": "_7K1QKa_audios",
6722
+ "header": "_7K1QKa_header",
6170
6723
  "root": "_7K1QKa_root",
6171
6724
  "download": "_7K1QKa_download",
6172
- "header": "_7K1QKa_header",
6173
- "status": "_7K1QKa_status",
6174
- "audio": "_7K1QKa_audio",
6175
- "message": "_7K1QKa_message",
6176
- "error": "_7K1QKa_error"
6725
+ "audioRow": "_7K1QKa_audioRow",
6726
+ "error": "_7K1QKa_error",
6727
+ "message": "_7K1QKa_message"
6177
6728
  };
6178
6729
  //#endregion
6179
6730
  //#region src/client/audio-toolview.tsx