dsh-audiogen 0.4.2 → 0.4.4

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
@@ -68,6 +68,11 @@ window.__ModuleLoader__.load({
68
68
  const body = await (await postJson(HISTORY_API.list, {})).json();
69
69
  return body.ok === true ? body.history ?? [] : [];
70
70
  }
71
+ /** 删除一条历史记录(返回删后的列表)。 */
72
+ async removeHistory(id) {
73
+ const body = await (await postJson(HISTORY_API.remove, { id })).json();
74
+ return body.ok === true ? body.history ?? [] : [];
75
+ }
71
76
  async clearHistory() {
72
77
  await postJson(HISTORY_API.clear, {});
73
78
  }
@@ -1138,7 +1143,7 @@ window.__ModuleLoader__.load({
1138
1143
  }
1139
1144
  //#endregion
1140
1145
  //#region \0dsh-css:/Users/shimingming/Projects_code/dsh-audiogen/src/client/audio-panel.module.css.mjs
1141
- 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:300px;min-width:260px;max-width:340px;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{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:6px 4px;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_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;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-bg-hover,#f3f4f6);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:#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:#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:#16a34a}.Oo1fpq_taskStatus[data-state=failed]{color:#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-bg-hover,#f3f4f6);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:#7c3aed;white-space:nowrap;background:#f5f3ff;border:1px solid #ddd6fe;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}";
1146
+ 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:300px;min-width:260px;max-width:340px;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{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.Oo1fpq_modeButton{border:1px solid var(--dsw-alias-border-l2,#d1d5db);background:var(--dsw-alias-bg-layer-1,#fff);min-height:34px;color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;cursor:pointer;border-radius:9px;justify-content:center;align-items:center;padding:6px 4px;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_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;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:#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:#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:#16a34a}.Oo1fpq_taskStatus[data-state=failed]{color:#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:#7c3aed;white-space:nowrap;background:#f5f3ff;border:1px solid #ddd6fe;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_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:#dc2626}.Oo1fpq_historyPrompt{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}";
1142
1147
  const tagId$4 = "dsh-audiogen/audio-panel.module.css";
1143
1148
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
1144
1149
  const tag = document.createElement("style");
@@ -1148,101 +1153,109 @@ window.__ModuleLoader__.load({
1148
1153
  document.head.appendChild(tag);
1149
1154
  }
1150
1155
  var audio_panel_module_css_default = {
1151
- "checkbox": "Oo1fpq_checkbox",
1152
- "historyList": "Oo1fpq_historyList",
1153
- "compareChips": "Oo1fpq_compareChips",
1154
- "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1155
- "title": "Oo1fpq_title",
1156
- "modeRow": "Oo1fpq_modeRow",
1157
- "compareBox": "Oo1fpq_compareBox",
1158
- "historyEmpty": "Oo1fpq_historyEmpty",
1159
- "resultGroup": "Oo1fpq_resultGroup",
1160
- "taskStatus": "Oo1fpq_taskStatus",
1161
- "compareBoard": "Oo1fpq_compareBoard",
1162
1156
  "overrideCell": "Oo1fpq_overrideCell",
1163
- "taskActions": "Oo1fpq_taskActions",
1164
- "historyTabCount": "Oo1fpq_historyTabCount",
1165
- "modalFoot": "Oo1fpq_modalFoot",
1166
- "historyModelRow": "Oo1fpq_historyModelRow",
1167
- "resultMeta": "Oo1fpq_resultMeta",
1168
- "textarea": "Oo1fpq_textarea",
1169
1157
  "taskCard": "Oo1fpq_taskCard",
1158
+ "taskHead": "Oo1fpq_taskHead",
1159
+ "historyModelRow": "Oo1fpq_historyModelRow",
1170
1160
  "overrideOnly": "Oo1fpq_overrideOnly",
1171
- "resultCol": "Oo1fpq_resultCol",
1172
- "tab": "Oo1fpq_tab",
1173
- "audioList": "Oo1fpq_audioList",
1174
- "playerCompact": "Oo1fpq_playerCompact",
1175
- "historyActions": "Oo1fpq_historyActions",
1176
- "resultGroups": "Oo1fpq_resultGroups",
1177
1161
  "resultGroupCount": "Oo1fpq_resultGroupCount",
1178
- "compareGroupHead": "Oo1fpq_compareGroupHead",
1179
- "historyTabs": "Oo1fpq_historyTabs",
1180
- "formRow": "Oo1fpq_formRow",
1181
- "modal": "Oo1fpq_modal",
1162
+ "voiceIdChip": "Oo1fpq_voiceIdChip",
1163
+ "modelCheckList": "Oo1fpq_modelCheckList",
1164
+ "input": "Oo1fpq_input",
1165
+ "fieldFull": "Oo1fpq_fieldFull",
1166
+ "resultEmpty": "Oo1fpq_resultEmpty",
1167
+ "advanced": "Oo1fpq_advanced",
1168
+ "primaryButton": "Oo1fpq_primaryButton",
1182
1169
  "iconButton": "Oo1fpq_iconButton",
1183
- "historyTitle": "Oo1fpq_historyTitle",
1184
- "overrideRow": "Oo1fpq_overrideRow",
1185
- "track": "Oo1fpq_track",
1186
- "historyMeta": "Oo1fpq_historyMeta",
1170
+ "historyAction": "Oo1fpq_historyAction",
1171
+ "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1172
+ "resultGroups": "Oo1fpq_resultGroups",
1173
+ "taskActions": "Oo1fpq_taskActions",
1174
+ "historyTab": "Oo1fpq_historyTab",
1175
+ "historyItem": "Oo1fpq_historyItem",
1176
+ "taskStatus": "Oo1fpq_taskStatus",
1177
+ "historyTabCount": "Oo1fpq_historyTabCount",
1178
+ "fieldCell": "Oo1fpq_fieldCell",
1179
+ "compareBox": "Oo1fpq_compareBox",
1180
+ "formRow": "Oo1fpq_formRow",
1181
+ "taskBar": "Oo1fpq_taskBar",
1182
+ "overrideTable": "Oo1fpq_overrideTable",
1187
1183
  "trackKnob": "Oo1fpq_trackKnob",
1188
- "modalMask": "Oo1fpq_modalMask",
1189
- "secondaryButton": "Oo1fpq_secondaryButton",
1190
- "hint": "Oo1fpq_hint",
1191
- "muteButton": "Oo1fpq_muteButton",
1192
- "historyPrompt": "Oo1fpq_historyPrompt",
1193
- "audioCardIndex": "Oo1fpq_audioCardIndex",
1194
- "time": "Oo1fpq_time",
1195
- "resultGroupError": "Oo1fpq_resultGroupError",
1196
- "overrideCellHead": "Oo1fpq_overrideCellHead",
1184
+ "audioCard": "Oo1fpq_audioCard",
1185
+ "historyCol": "Oo1fpq_historyCol",
1186
+ "historyCompareSummary": "Oo1fpq_historyCompareSummary",
1187
+ "resultGroup": "Oo1fpq_resultGroup",
1188
+ "modeIcon": "Oo1fpq_modeIcon",
1189
+ "ghostButton": "Oo1fpq_ghostButton",
1190
+ "modalBody": "Oo1fpq_modalBody",
1191
+ "modalFoot": "Oo1fpq_modalFoot",
1192
+ "textarea": "Oo1fpq_textarea",
1197
1193
  "modeButton": "Oo1fpq_modeButton",
1198
- "historyAction": "Oo1fpq_historyAction",
1199
- "audioCardActions": "Oo1fpq_audioCardActions",
1200
- "generate": "Oo1fpq_generate",
1201
- "panel": "Oo1fpq_panel",
1194
+ "historyActions": "Oo1fpq_historyActions",
1195
+ "hint": "Oo1fpq_hint",
1202
1196
  "compareState": "Oo1fpq_compareState",
1203
1197
  "compareGroup": "Oo1fpq_compareGroup",
1204
- "row": "Oo1fpq_row",
1205
- "taskList": "Oo1fpq_taskList",
1206
- "resultEmptyHint": "Oo1fpq_resultEmptyHint",
1198
+ "audioCardActions": "Oo1fpq_audioCardActions",
1199
+ "modalMask": "Oo1fpq_modalMask",
1200
+ "playerCompact": "Oo1fpq_playerCompact",
1201
+ "modal": "Oo1fpq_modal",
1202
+ "checkbox": "Oo1fpq_checkbox",
1203
+ "generate": "Oo1fpq_generate",
1207
1204
  "modalHead": "Oo1fpq_modalHead",
1208
- "taskHead": "Oo1fpq_taskHead",
1209
- "taskLabel": "Oo1fpq_taskLabel",
1210
- "historyCompareSummary": "Oo1fpq_historyCompareSummary",
1205
+ "historyTitle": "Oo1fpq_historyTitle",
1211
1206
  "historyClear": "Oo1fpq_historyClear",
1212
- "primaryButton": "Oo1fpq_primaryButton",
1213
- "savedChip": "Oo1fpq_savedChip",
1214
- "overrideDash": "Oo1fpq_overrideDash",
1215
- "modalBody": "Oo1fpq_modalBody",
1216
- "historyTab": "Oo1fpq_historyTab",
1217
- "audioCardHead": "Oo1fpq_audioCardHead",
1218
- "historyHeader": "Oo1fpq_historyHeader",
1219
1207
  "resultGroupHead": "Oo1fpq_resultGroupHead",
1220
- "audioCard": "Oo1fpq_audioCard",
1221
- "compareChip": "Oo1fpq_compareChip",
1222
- "overrideTable": "Oo1fpq_overrideTable",
1223
- "label": "Oo1fpq_label",
1224
- "error": "Oo1fpq_error",
1225
- "header": "Oo1fpq_header",
1226
- "advanced": "Oo1fpq_advanced",
1227
- "tabs": "Oo1fpq_tabs",
1228
- "resultEmptyIcon": "Oo1fpq_resultEmptyIcon",
1229
- "player": "Oo1fpq_player",
1208
+ "historyPrompt": "Oo1fpq_historyPrompt",
1230
1209
  "studio": "Oo1fpq_studio",
1210
+ "modeRow": "Oo1fpq_modeRow",
1211
+ "muteButton": "Oo1fpq_muteButton",
1212
+ "historyTabs": "Oo1fpq_historyTabs",
1213
+ "historyTime": "Oo1fpq_historyTime",
1214
+ "historyCompareBadge": "Oo1fpq_historyCompareBadge",
1215
+ "time": "Oo1fpq_time",
1216
+ "formSection": "Oo1fpq_formSection",
1231
1217
  "playButton": "Oo1fpq_playButton",
1218
+ "tabs": "Oo1fpq_tabs",
1219
+ "historyHeader": "Oo1fpq_historyHeader",
1220
+ "taskList": "Oo1fpq_taskList",
1221
+ "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1222
+ "taskLabel": "Oo1fpq_taskLabel",
1223
+ "panel": "Oo1fpq_panel",
1224
+ "historyIcon": "Oo1fpq_historyIcon",
1225
+ "overrideCellHead": "Oo1fpq_overrideCellHead",
1226
+ "historyMeta": "Oo1fpq_historyMeta",
1227
+ "header": "Oo1fpq_header",
1228
+ "resultGroupChip": "Oo1fpq_resultGroupChip",
1232
1229
  "formCol": "Oo1fpq_formCol",
1233
- "input": "Oo1fpq_input",
1234
- "trackFill": "Oo1fpq_trackFill",
1230
+ "error": "Oo1fpq_error",
1231
+ "resultMeta": "Oo1fpq_resultMeta",
1232
+ "overrideDash": "Oo1fpq_overrideDash",
1233
+ "compareModelName": "Oo1fpq_compareModelName",
1235
1234
  "toast": "Oo1fpq_toast",
1235
+ "label": "Oo1fpq_label",
1236
+ "formFields": "Oo1fpq_formFields",
1237
+ "compareChip": "Oo1fpq_compareChip",
1238
+ "player": "Oo1fpq_player",
1239
+ "resultCol": "Oo1fpq_resultCol",
1240
+ "title": "Oo1fpq_title",
1241
+ "track": "Oo1fpq_track",
1242
+ "audioCardHead": "Oo1fpq_audioCardHead",
1243
+ "savedChip": "Oo1fpq_savedChip",
1244
+ "audioCardIndex": "Oo1fpq_audioCardIndex",
1245
+ "trackFill": "Oo1fpq_trackFill",
1246
+ "audioList": "Oo1fpq_audioList",
1247
+ "row": "Oo1fpq_row",
1248
+ "compareBoard": "Oo1fpq_compareBoard",
1249
+ "historyEmpty": "Oo1fpq_historyEmpty",
1250
+ "tab": "Oo1fpq_tab",
1236
1251
  "resultModeChip": "Oo1fpq_resultModeChip",
1237
- "compareModelName": "Oo1fpq_compareModelName",
1238
- "historyItem": "Oo1fpq_historyItem",
1239
- "audiogenToastIn": "Oo1fpq_audiogenToastIn",
1240
- "resultGroupChip": "Oo1fpq_resultGroupChip",
1241
- "voiceIdChip": "Oo1fpq_voiceIdChip",
1242
- "resultEmpty": "Oo1fpq_resultEmpty",
1243
- "ghostButton": "Oo1fpq_ghostButton",
1244
- "historyCol": "Oo1fpq_historyCol",
1245
- "modelCheckList": "Oo1fpq_modelCheckList"
1252
+ "historyList": "Oo1fpq_historyList",
1253
+ "resultEmptyIcon": "Oo1fpq_resultEmptyIcon",
1254
+ "secondaryButton": "Oo1fpq_secondaryButton",
1255
+ "compareGroupHead": "Oo1fpq_compareGroupHead",
1256
+ "resultGroupError": "Oo1fpq_resultGroupError",
1257
+ "compareChips": "Oo1fpq_compareChips",
1258
+ "overrideRow": "Oo1fpq_overrideRow"
1246
1259
  };
1247
1260
  //#endregion
1248
1261
  //#region src/client/audio-player.tsx
@@ -1598,6 +1611,13 @@ window.__ModuleLoader__.load({
1598
1611
  if (mode === "sfx") return tt("mode.sfx");
1599
1612
  return tt("mode.voiceDesign");
1600
1613
  }
1614
+ /** 历史时间显示(YYYY-MM-DD HH:mm)。 */
1615
+ function formatClock(timestamp) {
1616
+ const date = new Date(timestamp);
1617
+ if (Number.isNaN(date.getTime())) return "";
1618
+ const pad = (n) => String(n).padStart(2, "0");
1619
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
1620
+ }
1601
1621
  function useConfig(scope) {
1602
1622
  const [value, setValue] = (0, react.useState)(scope.getSnapshot().value);
1603
1623
  (0, react.useEffect)(() => scope.subscribe(() => {
@@ -2014,6 +2034,78 @@ window.__ModuleLoader__.load({
2014
2034
  const removeTask = (taskId) => {
2015
2035
  setTasks((current) => current.filter((task) => task.id !== taskId));
2016
2036
  };
2037
+ /** 从历史参数回填表单(参考 AI 生图「恢复」):配置 + prompt 一键复用。 */
2038
+ const restoreFromParams = (params, modeValue, singleModel, compareModelsRestore) => {
2039
+ const str = (key) => {
2040
+ const v = params[key];
2041
+ return typeof v === "string" && v.trim() !== "" ? v.trim() : void 0;
2042
+ };
2043
+ const num = (key) => {
2044
+ const v = params[key];
2045
+ if (typeof v === "number" && Number.isFinite(v)) return v;
2046
+ if (typeof v === "string" && v.trim() !== "") {
2047
+ const parsed = Number(v);
2048
+ return Number.isFinite(parsed) ? parsed : void 0;
2049
+ }
2050
+ };
2051
+ const bool = (key) => typeof params[key] === "boolean" ? params[key] : void 0;
2052
+ setMode(modeValue);
2053
+ const modelValue = str("model") ?? singleModel;
2054
+ if (modelValue !== "") setModel(modelValue);
2055
+ if (compareModelsRestore !== void 0 && compareModelsRestore.length > 0) {
2056
+ setCompareMode(true);
2057
+ setCompareModels(compareModelsRestore);
2058
+ } else setCompareMode(false);
2059
+ const voiceValue = str("voice");
2060
+ if (voiceValue !== void 0) setVoice(voiceValue);
2061
+ const speedValue = num("speed");
2062
+ if (speedValue !== void 0) setSpeed(String(speedValue));
2063
+ const durationValue = num("duration");
2064
+ if (durationValue !== void 0) setDuration(String(durationValue));
2065
+ const formatValue = str("format");
2066
+ if (formatValue !== void 0) setFormat(formatValue);
2067
+ const lyricsValue = str("lyrics");
2068
+ if (lyricsValue !== void 0) setLyrics(lyricsValue);
2069
+ const instrumentalValue = bool("isInstrumental");
2070
+ if (instrumentalValue !== void 0) setInstrumental(instrumentalValue);
2071
+ const loopValue = bool("loop");
2072
+ if (loopValue !== void 0) setLoop(loopValue);
2073
+ const influenceValue = num("promptInfluence");
2074
+ if (influenceValue !== void 0) setPromptInfluence(String(influenceValue));
2075
+ const emotionValue = str("emotion");
2076
+ if (emotionValue !== void 0) setEmotion(emotionValue);
2077
+ const volValue = num("vol");
2078
+ if (volValue !== void 0) setVol(String(volValue));
2079
+ const pitchValue = num("pitch");
2080
+ if (pitchValue !== void 0) setPitch(String(pitchValue));
2081
+ if (Array.isArray(params.pronunciationTone)) setToneText(params.pronunciationTone.filter((item) => typeof item === "string").join("\n"));
2082
+ const sampleRateValue = num("sampleRate");
2083
+ if (sampleRateValue !== void 0) setSampleRate(String(sampleRateValue));
2084
+ const bitrateValue = num("bitrate");
2085
+ if (bitrateValue !== void 0) setBitrate(String(bitrateValue));
2086
+ const channelValue = num("audioChannel");
2087
+ if (channelValue !== void 0) setAudioChannel(String(channelValue));
2088
+ const subtitleValue = bool("subtitleEnable");
2089
+ if (subtitleValue !== void 0) setSubtitle(subtitleValue);
2090
+ const seedValue = num("seed");
2091
+ if (seedValue !== void 0) setSeed(String(seedValue));
2092
+ const stepsValue = num("steps");
2093
+ if (stepsValue !== void 0) setSteps(String(stepsValue));
2094
+ const cfgValue = num("cfgScale");
2095
+ if (cfgValue !== void 0) setCfgScale(String(cfgValue));
2096
+ const previewValue = str("previewText");
2097
+ if (previewValue !== void 0) setPreviewText(previewValue);
2098
+ const channelIdValue = str("channelId");
2099
+ if (channelIdValue !== void 0 && modeValue === "voice_design") setDesignChannelId(channelIdValue);
2100
+ props.showToast("已恢复该次生成的配置,可直接再次生成");
2101
+ };
2102
+ /** 删除历史记录(对比任务卡删除该任务的全部模型条目)。 */
2103
+ const deleteHistoryEntries = async (ids) => {
2104
+ try {
2105
+ for (const id of ids) await api.removeHistory(id);
2106
+ } catch {}
2107
+ reload();
2108
+ };
2017
2109
  const openSaveDialog = (files, context) => {
2018
2110
  setSaveDialog({
2019
2111
  files,
@@ -2396,18 +2488,25 @@ window.__ModuleLoader__.load({
2396
2488
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2397
2489
  className: audio_panel_module_css_default.modeRow,
2398
2490
  children: [
2399
- "tts",
2400
- "music",
2401
- "sfx",
2402
- "voice_design"
2403
- ].map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2491
+ ["tts", "🎙️"],
2492
+ ["music", "🎵"],
2493
+ ["sfx", "🔊"],
2494
+ ["voice_design", "🎨"]
2495
+ ].map(([item, icon]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2404
2496
  type: "button",
2405
2497
  className: audio_panel_module_css_default.modeButton,
2406
2498
  "data-active": mode === item ? "true" : "false",
2407
2499
  onClick: () => setMode(item),
2408
- children: item === "tts" ? tt("mode.tts") : item === "music" ? tt("mode.music") : item === "sfx" ? tt("mode.sfx") : tt("mode.voiceDesign")
2500
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2501
+ className: audio_panel_module_css_default.modeIcon,
2502
+ children: icon
2503
+ }), modeLabelOf(item)]
2409
2504
  }, item))
2410
2505
  }),
2506
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2507
+ className: audio_panel_module_css_default.formSection,
2508
+ children: "输入"
2509
+ }),
2411
2510
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
2412
2511
  className: audio_panel_module_css_default.label,
2413
2512
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: mode === "voice_design" ? "音色描述" : mode === "tts" ? "文本" : "提示词" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
@@ -2452,6 +2551,10 @@ window.__ModuleLoader__.load({
2452
2551
  })]
2453
2552
  })
2454
2553
  ] }) : null,
2554
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2555
+ className: audio_panel_module_css_default.formSection,
2556
+ children: "模型"
2557
+ }),
2455
2558
  needModel ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
2456
2559
  className: audio_panel_module_css_default.checkbox,
2457
2560
  title: "选择多个模型,用相同参数逐个生成,便于对比效果",
@@ -2570,7 +2673,17 @@ window.__ModuleLoader__.load({
2570
2673
  }, group.channelId))]
2571
2674
  })]
2572
2675
  }) : null,
2573
- globalSpecs.filter((spec) => spec.advanced !== true).map((spec) => renderField(spec)),
2676
+ globalSpecs.some((spec) => spec.advanced !== true) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2677
+ className: audio_panel_module_css_default.formSection,
2678
+ children: "生成参数"
2679
+ }) : null,
2680
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2681
+ className: audio_panel_module_css_default.formFields,
2682
+ children: globalSpecs.filter((spec) => spec.advanced !== true).map((spec) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2683
+ className: spec.key === "lyrics" || spec.key === "toneText" ? audio_panel_module_css_default.fieldFull : audio_panel_module_css_default.fieldCell,
2684
+ children: renderField(spec)
2685
+ }, spec.key))
2686
+ }),
2574
2687
  mode === "tts" && globalSpecs.some((spec) => spec.advanced === true) ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
2575
2688
  className: audio_panel_module_css_default.advanced,
2576
2689
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", { children: "MiniMax 高级参数" }), globalSpecs.filter((spec) => spec.advanced === true).map((spec) => renderField(spec))]
@@ -2621,6 +2734,19 @@ window.__ModuleLoader__.load({
2621
2734
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2622
2735
  className: audio_panel_module_css_default.resultEmptyHint,
2623
2736
  children: "点击「开始生成」即创建一个任务,可同时进行多个;勾选「模型对比」用多个模型同参数生成对比"
2737
+ }),
2738
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2739
+ type: "button",
2740
+ className: audio_panel_module_css_default.ghostButton,
2741
+ onClick: () => {
2742
+ setPrompt({
2743
+ tts: "今天是不是很开心呀(laughs),当然了!我们一起去公园散步吧。",
2744
+ music: "Cinematic orchestral piece with a clear \"before/after\" transition at 1:00, starting minimalist piano + strings, then full orchestra entrance with timpani and brass at the 1-minute mark.",
2745
+ sfx: "科技感 UI 提示音:清脆短促,带轻微回声与空气感。",
2746
+ voice_design: "讲述悬疑故事的播音员,声音低沉富有磁性,语速时快时慢,营造紧张神秘的氛围。"
2747
+ }[mode] ?? "");
2748
+ },
2749
+ children: "填入示例 prompt"
2624
2750
  })
2625
2751
  ]
2626
2752
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -2649,6 +2775,10 @@ window.__ModuleLoader__.load({
2649
2775
  "data-state": task.status,
2650
2776
  children: statusText
2651
2777
  }),
2778
+ task.status === "running" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2779
+ className: audio_panel_module_css_default.taskBar,
2780
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", { style: { width: `${task.progress.total > 0 ? Math.round(task.progress.done / task.progress.total * 100) : 0}%` } })
2781
+ }) : null,
2652
2782
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
2653
2783
  className: audio_panel_module_css_default.taskActions,
2654
2784
  children: [task.status === "running" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
@@ -2746,17 +2876,24 @@ window.__ModuleLoader__.load({
2746
2876
  children: [
2747
2877
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("summary", {
2748
2878
  className: audio_panel_module_css_default.historyCompareSummary,
2749
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2750
- className: audio_panel_module_css_default.historyPrompt,
2751
- children: item.prompt
2752
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
2753
- className: audio_panel_module_css_default.historyCompareBadge,
2754
- children: [
2755
- "对比 · ",
2756
- item.models.length,
2757
- " 个模型"
2758
- ]
2759
- })]
2879
+ children: [
2880
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2881
+ className: audio_panel_module_css_default.historyPrompt,
2882
+ children: item.prompt
2883
+ }),
2884
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
2885
+ className: audio_panel_module_css_default.historyCompareBadge,
2886
+ children: [
2887
+ "对比 · ",
2888
+ item.models.length,
2889
+ " 个模型"
2890
+ ]
2891
+ }),
2892
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2893
+ className: audio_panel_module_css_default.historyTime,
2894
+ children: formatClock(item.createdAt)
2895
+ })
2896
+ ]
2760
2897
  }),
2761
2898
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2762
2899
  className: audio_panel_module_css_default.historyMeta,
@@ -2788,7 +2925,23 @@ window.__ModuleLoader__.load({
2788
2925
  })
2789
2926
  })
2790
2927
  ]
2791
- }, model.entry.id))
2928
+ }, model.entry.id)),
2929
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2930
+ className: audio_panel_module_css_default.historyActions,
2931
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2932
+ type: "button",
2933
+ className: audio_panel_module_css_default.historyIcon,
2934
+ title: "恢复(回填配置与全部模型)",
2935
+ onClick: () => restoreFromParams(item.models[0]?.entry.params ?? {}, item.mode, item.models[0]?.model ?? "", item.models.map((model) => model.model)),
2936
+ children: "↺"
2937
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2938
+ type: "button",
2939
+ className: audio_panel_module_css_default.historyIcon,
2940
+ title: "删除整个对比任务",
2941
+ onClick: () => void deleteHistoryEntries(item.models.map((model) => model.entry.id)),
2942
+ children: "✕"
2943
+ })]
2944
+ })
2792
2945
  ]
2793
2946
  }, item.key);
2794
2947
  const entry = item.entry;
@@ -2808,19 +2961,40 @@ window.__ModuleLoader__.load({
2808
2961
  entry.channel ? ` · ${entry.channel}` : ""
2809
2962
  ]
2810
2963
  }),
2964
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2965
+ className: audio_panel_module_css_default.historyTime,
2966
+ children: formatClock(entry.createdAt)
2967
+ }),
2811
2968
  entry.audio.map((audio, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AudioPlayer, {
2812
2969
  src: audio.url,
2813
2970
  compact: true,
2814
2971
  itemKey: `${entry.id}-${index}`
2815
2972
  }, index)),
2816
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2973
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2817
2974
  className: audio_panel_module_css_default.historyActions,
2818
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2819
- type: "button",
2820
- className: audio_panel_module_css_default.historyAction,
2821
- onClick: () => openSaveDialog(audioRefsOfEntry(entry), contextOfEntry(entry)),
2822
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StarIcon, {}), " 入库"]
2823
- })
2975
+ children: [
2976
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2977
+ type: "button",
2978
+ className: audio_panel_module_css_default.historyIcon,
2979
+ title: "恢复(回填配置与 prompt)",
2980
+ onClick: () => restoreFromParams(entry.params ?? {}, entry.mode, entry.model),
2981
+ children: "↺"
2982
+ }),
2983
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2984
+ type: "button",
2985
+ className: audio_panel_module_css_default.historyIcon,
2986
+ title: "删除这条记录",
2987
+ onClick: () => void deleteHistoryEntries([entry.id]),
2988
+ children: "✕"
2989
+ }),
2990
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
2991
+ type: "button",
2992
+ className: audio_panel_module_css_default.historyIcon,
2993
+ title: "加入资源库",
2994
+ onClick: () => openSaveDialog(audioRefsOfEntry(entry), contextOfEntry(entry)),
2995
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StarIcon, {})
2996
+ })
2997
+ ]
2824
2998
  })
2825
2999
  ]
2826
3000
  }, item.key);
@@ -2849,62 +3023,62 @@ window.__ModuleLoader__.load({
2849
3023
  document.head.appendChild(tag);
2850
3024
  }
2851
3025
  var library_module_css_default = {
2852
- "drawerMask": "vzUV2a_drawerMask",
2853
- "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
3026
+ "provKey": "vzUV2a_provKey",
3027
+ "chip": "vzUV2a_chip",
3028
+ "drawer": "vzUV2a_drawer",
3029
+ "cardName": "vzUV2a_cardName",
3030
+ "ghostBtn": "vzUV2a_ghostBtn",
3031
+ "selCount": "vzUV2a_selCount",
3032
+ "drawerSection": "vzUV2a_drawerSection",
3033
+ "dangerBtn": "vzUV2a_dangerBtn",
3034
+ "iconBtn": "vzUV2a_iconBtn",
2854
3035
  "drawerLabel": "vzUV2a_drawerLabel",
2855
- "searchBox": "vzUV2a_searchBox",
2856
- "listHead": "vzUV2a_listHead",
2857
- "card": "vzUV2a_card",
2858
3036
  "filterRow": "vzUV2a_filterRow",
2859
- "smallChip": "vzUV2a_smallChip",
2860
- "emptyIcon": "vzUV2a_emptyIcon",
2861
- "iconBtn": "vzUV2a_iconBtn",
2862
- "drawerBody": "vzUV2a_drawerBody",
2863
- "drawerField": "vzUV2a_drawerField",
2864
3037
  "listActions": "vzUV2a_listActions",
2865
- "input": "vzUV2a_input",
2866
- "metaChip": "vzUV2a_metaChip",
2867
- "mono": "vzUV2a_mono",
3038
+ "cardTime": "vzUV2a_cardTime",
3039
+ "audiogenDrawerIn": "vzUV2a_audiogenDrawerIn",
2868
3040
  "cardCheck": "vzUV2a_cardCheck",
2869
- "drawerSection": "vzUV2a_drawerSection",
2870
- "drawerTitle": "vzUV2a_drawerTitle",
2871
- "provenance": "vzUV2a_provenance",
2872
- "stateNote": "vzUV2a_stateNote",
2873
- "textarea": "vzUV2a_textarea",
2874
- "code": "vzUV2a_code",
2875
- "paramsDetails": "vzUV2a_paramsDetails",
2876
3041
  "drawerPlayer": "vzUV2a_drawerPlayer",
2877
- "drawerActions": "vzUV2a_drawerActions",
2878
- "drawerPlayerName": "vzUV2a_drawerPlayerName",
2879
- "primaryBtn": "vzUV2a_primaryBtn",
2880
- "typeBadge": "vzUV2a_typeBadge",
2881
- "cardFoot": "vzUV2a_cardFoot",
2882
- "selCount": "vzUV2a_selCount",
2883
- "grid": "vzUV2a_grid",
2884
- "drawer": "vzUV2a_drawer",
2885
- "searchInput": "vzUV2a_searchInput",
2886
- "drawerPlayerList": "vzUV2a_drawerPlayerList",
2887
- "provKey": "vzUV2a_provKey",
2888
- "drawerHead": "vzUV2a_drawerHead",
2889
- "dangerBtn": "vzUV2a_dangerBtn",
2890
- "toolbar": "vzUV2a_toolbar",
2891
- "provRow": "vzUV2a_provRow",
2892
3042
  "provValue": "vzUV2a_provValue",
2893
- "ghostBtn": "vzUV2a_ghostBtn",
2894
- "chipCount": "vzUV2a_chipCount",
2895
- "typeChips": "vzUV2a_typeChips",
2896
- "smallSelect": "vzUV2a_smallSelect",
2897
- "drawerSplit": "vzUV2a_drawerSplit",
3043
+ "drawerPlayerList": "vzUV2a_drawerPlayerList",
3044
+ "textarea": "vzUV2a_textarea",
3045
+ "drawerBody": "vzUV2a_drawerBody",
3046
+ "searchBox": "vzUV2a_searchBox",
3047
+ "metaChip": "vzUV2a_metaChip",
3048
+ "input": "vzUV2a_input",
2898
3049
  "library": "vzUV2a_library",
2899
- "emptyHint": "vzUV2a_emptyHint",
3050
+ "filterLabel": "vzUV2a_filterLabel",
3051
+ "emptyIcon": "vzUV2a_emptyIcon",
3052
+ "cardFoot": "vzUV2a_cardFoot",
2900
3053
  "cardHead": "vzUV2a_cardHead",
2901
- "cardTime": "vzUV2a_cardTime",
2902
- "promptText": "vzUV2a_promptText",
3054
+ "stateNote": "vzUV2a_stateNote",
3055
+ "provRow": "vzUV2a_provRow",
3056
+ "smallSelect": "vzUV2a_smallSelect",
3057
+ "emptyHint": "vzUV2a_emptyHint",
3058
+ "toolbar": "vzUV2a_toolbar",
3059
+ "typeBadge": "vzUV2a_typeBadge",
3060
+ "drawerPlayerName": "vzUV2a_drawerPlayerName",
3061
+ "drawerField": "vzUV2a_drawerField",
2903
3062
  "empty": "vzUV2a_empty",
2904
- "cardName": "vzUV2a_cardName",
2905
- "filterLabel": "vzUV2a_filterLabel",
3063
+ "grid": "vzUV2a_grid",
3064
+ "drawerTitle": "vzUV2a_drawerTitle",
3065
+ "drawerSplit": "vzUV2a_drawerSplit",
3066
+ "provenance": "vzUV2a_provenance",
3067
+ "mono": "vzUV2a_mono",
3068
+ "searchInput": "vzUV2a_searchInput",
3069
+ "code": "vzUV2a_code",
3070
+ "drawerMask": "vzUV2a_drawerMask",
3071
+ "typeChips": "vzUV2a_typeChips",
3072
+ "promptText": "vzUV2a_promptText",
3073
+ "chipCount": "vzUV2a_chipCount",
3074
+ "smallChip": "vzUV2a_smallChip",
3075
+ "card": "vzUV2a_card",
2906
3076
  "listCount": "vzUV2a_listCount",
2907
- "chip": "vzUV2a_chip"
3077
+ "primaryBtn": "vzUV2a_primaryBtn",
3078
+ "listHead": "vzUV2a_listHead",
3079
+ "paramsDetails": "vzUV2a_paramsDetails",
3080
+ "drawerHead": "vzUV2a_drawerHead",
3081
+ "drawerActions": "vzUV2a_drawerActions"
2908
3082
  };
2909
3083
  //#endregion
2910
3084
  //#region src/client/library-view.tsx
@@ -3777,167 +3951,167 @@ window.__ModuleLoader__.load({
3777
3951
  document.head.appendChild(tag);
3778
3952
  }
3779
3953
  var panel_module_css_default = {
3780
- "view": "rwa6qG_view",
3781
- "lightboxClose": "rwa6qG_lightboxClose",
3782
- "galleryWorkspace": "rwa6qG_galleryWorkspace",
3783
- "galleryRemove": "rwa6qG_galleryRemove",
3784
- "lightboxMeta": "rwa6qG_lightboxMeta",
3785
- "canvasState": "rwa6qG_canvasState",
3786
- "taskTrayHeader": "rwa6qG_taskTrayHeader",
3787
- "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
3788
- "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
3789
- "galleryViewToggle": "rwa6qG_galleryViewToggle",
3790
- "galleryClear": "rwa6qG_galleryClear",
3791
- "galleryHeading": "rwa6qG_galleryHeading",
3792
- "connectionDot": "rwa6qG_connectionDot",
3793
- "uploadHint": "rwa6qG_uploadHint",
3794
- "compareModelChoices": "rwa6qG_compareModelChoices",
3795
- "canvasError": "rwa6qG_canvasError",
3796
- "galleryFilterNote": "rwa6qG_galleryFilterNote",
3797
- "hiddenFile": "rwa6qG_hiddenFile",
3798
- "historyThumbPlaceholder": "rwa6qG_historyThumbPlaceholder",
3799
- "configGuide": "rwa6qG_configGuide",
3800
- "galleryTagFilter": "rwa6qG_galleryTagFilter",
3801
- "updateBanner": "rwa6qG_updateBanner",
3802
- "lightboxTool": "rwa6qG_lightboxTool",
3803
- "historyTitle": "rwa6qG_historyTitle",
3804
- "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
3805
- "lightbox": "rwa6qG_lightbox",
3806
- "referenceActions": "rwa6qG_referenceActions",
3807
- "lightboxFigure": "rwa6qG_lightboxFigure",
3808
- "taskTrayClose": "rwa6qG_taskTrayClose",
3809
- "referenceImage": "rwa6qG_referenceImage",
3810
- "lightboxDownload": "rwa6qG_lightboxDownload",
3811
- "lightboxActions": "rwa6qG_lightboxActions",
3812
- "download": "rwa6qG_download",
3813
- "comparisonBoard": "rwa6qG_comparisonBoard",
3814
- "galleryImageButton": "rwa6qG_galleryImageButton",
3815
- "optionRow": "rwa6qG_optionRow",
3816
- "entryLabel": "rwa6qG_entryLabel",
3817
- "galleryAdd": "rwa6qG_galleryAdd",
3818
- "canvasMeta": "rwa6qG_canvasMeta",
3819
- "historyList": "rwa6qG_historyList",
3820
- "reference": "rwa6qG_reference",
3954
+ "historyPrompt": "rwa6qG_historyPrompt",
3955
+ "gallerySelectionBar": "rwa6qG_gallerySelectionBar",
3821
3956
  "footer": "rwa6qG_footer",
3822
- "lightboxCopy": "rwa6qG_lightboxCopy",
3823
- "galleryImage": "rwa6qG_galleryImage",
3824
- "galleryBadge": "rwa6qG_galleryBadge",
3825
- "historyInfo": "rwa6qG_historyInfo",
3826
- "gallerySearch": "rwa6qG_gallerySearch",
3827
- "lightboxIndex": "rwa6qG_lightboxIndex",
3828
- "lightboxImage": "rwa6qG_lightboxImage",
3829
- "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
3830
- "galleryBulkButton": "rwa6qG_galleryBulkButton",
3831
- "paramHint": "rwa6qG_paramHint",
3832
- "updateActions": "rwa6qG_updateActions",
3833
- "modelWrap": "rwa6qG_modelWrap",
3834
- "lightboxTools": "rwa6qG_lightboxTools",
3835
- "galleryCardFooter": "rwa6qG_galleryCardFooter",
3836
- "zoomHint": "rwa6qG_zoomHint",
3957
+ "githubLink": "rwa6qG_githubLink",
3837
3958
  "panelHeading": "rwa6qG_panelHeading",
3838
- "panelTitle": "rwa6qG_panelTitle",
3839
- "taskTrayToggle": "rwa6qG_taskTrayToggle",
3959
+ "galleryFilterDivider": "rwa6qG_galleryFilterDivider",
3960
+ "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
3961
+ "bigSpinner": "rwa6qG_bigSpinner",
3962
+ "historySearch": "rwa6qG_historySearch",
3963
+ "historyMain": "rwa6qG_historyMain",
3964
+ "imageCaption": "rwa6qG_imageCaption",
3965
+ "taskTray": "rwa6qG_taskTray",
3966
+ "historyItem": "rwa6qG_historyItem",
3840
3967
  "modelSelect": "rwa6qG_modelSelect",
3841
- "generateButton": "rwa6qG_generateButton",
3842
3968
  "compareControl": "rwa6qG_compareControl",
3843
- "historySearch": "rwa6qG_historySearch",
3844
- "optionPill": "rwa6qG_optionPill",
3845
- "historyPrompt": "rwa6qG_historyPrompt",
3846
- "uploadBox": "rwa6qG_uploadBox",
3969
+ "enhanceButton": "rwa6qG_enhanceButton",
3970
+ "promptFooter": "rwa6qG_promptFooter",
3971
+ "taskTrayToggle": "rwa6qG_taskTrayToggle",
3972
+ "generateInner": "rwa6qG_generateInner",
3973
+ "connectionStatus": "rwa6qG_connectionStatus",
3974
+ "hiddenFile": "rwa6qG_hiddenFile",
3975
+ "galleryImage": "rwa6qG_galleryImage",
3976
+ "galleryFilterCount": "rwa6qG_galleryFilterCount",
3977
+ "lightbox": "rwa6qG_lightbox",
3978
+ "optionRow": "rwa6qG_optionRow",
3979
+ "galleryTags": "rwa6qG_galleryTags",
3980
+ "historyClear": "rwa6qG_historyClear",
3847
3981
  "gallerySelect": "rwa6qG_gallerySelect",
3848
- "grid": "rwa6qG_grid",
3849
- "galleryCount": "rwa6qG_galleryCount",
3850
- "bigSpinner": "rwa6qG_bigSpinner",
3851
- "canvas": "rwa6qG_canvas",
3982
+ "galleryTagInput": "rwa6qG_galleryTagInput",
3983
+ "taskTrayHeader": "rwa6qG_taskTrayHeader",
3984
+ "lightboxEdit": "rwa6qG_lightboxEdit",
3985
+ "paramHint": "rwa6qG_paramHint",
3986
+ "modeRow": "rwa6qG_modeRow",
3987
+ "canvasState": "rwa6qG_canvasState",
3988
+ "comparisonBoard": "rwa6qG_comparisonBoard",
3989
+ "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
3990
+ "historyThumb": "rwa6qG_historyThumb",
3991
+ "canvasBody": "rwa6qG_canvasBody",
3992
+ "studio": "rwa6qG_studio",
3993
+ "galleryClear": "rwa6qG_galleryClear",
3994
+ "galleryMasonry": "rwa6qG_galleryMasonry",
3852
3995
  "taskTrayCount": "rwa6qG_taskTrayCount",
3853
- "historyHeader": "rwa6qG_historyHeader",
3854
- "comparisonGrid": "rwa6qG_comparisonGrid",
3855
- "galleryFilter": "rwa6qG_galleryFilter",
3996
+ "galleryRatio": "rwa6qG_galleryRatio",
3997
+ "lightboxNav": "rwa6qG_lightboxNav",
3856
3998
  "lightboxCaption": "rwa6qG_lightboxCaption",
3999
+ "galleryFilterNote": "rwa6qG_galleryFilterNote",
4000
+ "grid": "rwa6qG_grid",
4001
+ "uploadBox": "rwa6qG_uploadBox",
4002
+ "historyInfo": "rwa6qG_historyInfo",
4003
+ "lightboxMeta": "rwa6qG_lightboxMeta",
4004
+ "galleryCount": "rwa6qG_galleryCount",
4005
+ "galleryFilterHeading": "rwa6qG_galleryFilterHeading",
4006
+ "updateRelease": "rwa6qG_updateRelease",
4007
+ "lightboxImage": "rwa6qG_lightboxImage",
4008
+ "galleryViewToggle": "rwa6qG_galleryViewToggle",
4009
+ "gallerySort": "rwa6qG_gallerySort",
4010
+ "historyActions": "rwa6qG_historyActions",
4011
+ "config": "rwa6qG_config",
4012
+ "updateText": "rwa6qG_updateText",
4013
+ "galleryTagEdit": "rwa6qG_galleryTagEdit",
4014
+ "canvasError": "rwa6qG_canvasError",
3857
4015
  "galleryToast": "rwa6qG_galleryToast",
3858
- "promptFooter": "rwa6qG_promptFooter",
3859
- "githubLink": "rwa6qG_githubLink",
3860
- "canvasEmptyIcon": "rwa6qG_canvasEmptyIcon",
4016
+ "entry": "rwa6qG_entry",
4017
+ "updateActions": "rwa6qG_updateActions",
4018
+ "taskTrayClose": "rwa6qG_taskTrayClose",
4019
+ "history": "rwa6qG_history",
4020
+ "entryLabel": "rwa6qG_entryLabel",
4021
+ "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
3861
4022
  "dshImageGenToastIn": "rwa6qG_dshImageGenToastIn",
3862
- "galleryMasonry": "rwa6qG_galleryMasonry",
3863
- "galleryAvatar": "rwa6qG_galleryAvatar",
3864
- "panelHeader": "rwa6qG_panelHeader",
3865
- "connectionStatus": "rwa6qG_connectionStatus",
3866
- "galleryTagInput": "rwa6qG_galleryTagInput",
4023
+ "canvasStateTitle": "rwa6qG_canvasStateTitle",
4024
+ "galleryFilter": "rwa6qG_galleryFilter",
3867
4025
  "galleryToolbarActions": "rwa6qG_galleryToolbarActions",
3868
- "imageCaption": "rwa6qG_imageCaption",
3869
- "templatesButton": "rwa6qG_templatesButton",
3870
- "updateRelease": "rwa6qG_updateRelease",
3871
- "card": "rwa6qG_card",
3872
- "galleryRatio": "rwa6qG_galleryRatio",
3873
- "compareToggle": "rwa6qG_compareToggle",
3874
- "galleryTags": "rwa6qG_galleryTags",
4026
+ "galleryWorkspace": "rwa6qG_galleryWorkspace",
4027
+ "galleryTagEditor": "rwa6qG_galleryTagEditor",
4028
+ "prompt": "rwa6qG_prompt",
4029
+ "lightboxScaleFrame": "rwa6qG_lightboxScaleFrame",
4030
+ "panel": "rwa6qG_panel",
4031
+ "canvasStateHint": "rwa6qG_canvasStateHint",
4032
+ "taskTrayChevron": "rwa6qG_taskTrayChevron",
4033
+ "dshImageGenSpin": "rwa6qG_dshImageGenSpin",
4034
+ "galleryHeading": "rwa6qG_galleryHeading",
4035
+ "galleryImageButton": "rwa6qG_galleryImageButton",
4036
+ "galleryBadge": "rwa6qG_galleryBadge",
4037
+ "optionPill": "rwa6qG_optionPill",
4038
+ "lightboxStage": "rwa6qG_lightboxStage",
4039
+ "historyAction": "rwa6qG_historyAction",
3875
4040
  "comparisonImageButton": "rwa6qG_comparisonImageButton",
4041
+ "comparisonGrid": "rwa6qG_comparisonGrid",
4042
+ "card": "rwa6qG_card",
4043
+ "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
4044
+ "historyMeta": "rwa6qG_historyMeta",
4045
+ "galleryAdd": "rwa6qG_galleryAdd",
4046
+ "configScroll": "rwa6qG_configScroll",
4047
+ "historyHeader": "rwa6qG_historyHeader",
4048
+ "galleryRemove": "rwa6qG_galleryRemove",
4049
+ "taskRows": "rwa6qG_taskRows",
4050
+ "reference": "rwa6qG_reference",
3876
4051
  "galleryRatioList": "rwa6qG_galleryRatioList",
3877
- "historyEmpty": "rwa6qG_historyEmpty",
3878
- "modePill": "rwa6qG_modePill",
3879
- "paramGroup": "rwa6qG_paramGroup",
3880
- "galleryFilterCount": "rwa6qG_galleryFilterCount",
4052
+ "galleryTagFilter": "rwa6qG_galleryTagFilter",
4053
+ "panelTitle": "rwa6qG_panelTitle",
4054
+ "uploadHint": "rwa6qG_uploadHint",
4055
+ "lightboxTools": "rwa6qG_lightboxTools",
4056
+ "templatesButton": "rwa6qG_templatesButton",
4057
+ "zoomHint": "rwa6qG_zoomHint",
4058
+ "taskRow": "rwa6qG_taskRow",
4059
+ "paramLabel": "rwa6qG_paramLabel",
3881
4060
  "comparisonFullscreenGrid": "rwa6qG_comparisonFullscreenGrid",
3882
- "modelMenuItem": "rwa6qG_modelMenuItem",
3883
- "config": "rwa6qG_config",
3884
- "modelMenu": "rwa6qG_modelMenu",
3885
- "galleryTagEditor": "rwa6qG_galleryTagEditor",
3886
- "imageCard": "rwa6qG_imageCard",
3887
- "lightboxCaptionRow": "rwa6qG_lightboxCaptionRow",
3888
- "historyFilters": "rwa6qG_historyFilters",
3889
- "gallerySelectionBar": "rwa6qG_gallerySelectionBar",
3890
- "taskPrompt": "rwa6qG_taskPrompt",
3891
- "historyThumb": "rwa6qG_historyThumb",
3892
- "canvasBody": "rwa6qG_canvasBody",
3893
- "taskRows": "rwa6qG_taskRows",
3894
- "optionGrid": "rwa6qG_optionGrid",
3895
- "modelLabel": "rwa6qG_modelLabel",
3896
- "entryIcon": "rwa6qG_entryIcon",
3897
4061
  "galleryCard": "rwa6qG_galleryCard",
3898
- "historyItem": "rwa6qG_historyItem",
3899
- "lightboxStage": "rwa6qG_lightboxStage",
3900
- "taskStatus": "rwa6qG_taskStatus",
4062
+ "galleryCardFooter": "rwa6qG_galleryCardFooter",
4063
+ "lightboxCopy": "rwa6qG_lightboxCopy",
4064
+ "modelMenu": "rwa6qG_modelMenu",
4065
+ "lightboxActions": "rwa6qG_lightboxActions",
3901
4066
  "uploadIcon": "rwa6qG_uploadIcon",
3902
- "paramLabel": "rwa6qG_paramLabel",
3903
- "galleryCardInfo": "rwa6qG_galleryCardInfo",
3904
- "taskTray": "rwa6qG_taskTray",
3905
- "lightboxZoomLevel": "rwa6qG_lightboxZoomLevel",
4067
+ "generateButton": "rwa6qG_generateButton",
4068
+ "historyEmpty": "rwa6qG_historyEmpty",
4069
+ "compareToggle": "rwa6qG_compareToggle",
4070
+ "historyThumbPlaceholder": "rwa6qG_historyThumbPlaceholder",
4071
+ "optionGrid": "rwa6qG_optionGrid",
4072
+ "historyTitle": "rwa6qG_historyTitle",
3906
4073
  "modelMenuList": "rwa6qG_modelMenuList",
3907
- "historyMain": "rwa6qG_historyMain",
3908
- "galleryTagEdit": "rwa6qG_galleryTagEdit",
3909
- "canvasStateTitle": "rwa6qG_canvasStateTitle",
3910
- "history": "rwa6qG_history",
3911
- "historyClear": "rwa6qG_historyClear",
4074
+ "galleryFilters": "rwa6qG_galleryFilters",
4075
+ "gallerySelectionClear": "rwa6qG_gallerySelectionClear",
4076
+ "gallerySearch": "rwa6qG_gallerySearch",
4077
+ "canvasEmptyIcon": "rwa6qG_canvasEmptyIcon",
4078
+ "updateBanner": "rwa6qG_updateBanner",
4079
+ "paramGroup": "rwa6qG_paramGroup",
4080
+ "imageCard": "rwa6qG_imageCard",
4081
+ "configGuideBody": "rwa6qG_configGuideBody",
3912
4082
  "comparisonFullscreen": "rwa6qG_comparisonFullscreen",
3913
- "enhanceButton": "rwa6qG_enhanceButton",
3914
- "historyAction": "rwa6qG_historyAction",
3915
- "updateText": "rwa6qG_updateText",
3916
- "historyActions": "rwa6qG_historyActions",
4083
+ "canvasMeta": "rwa6qG_canvasMeta",
4084
+ "lightboxTool": "rwa6qG_lightboxTool",
4085
+ "galleryAvatar": "rwa6qG_galleryAvatar",
4086
+ "connectionDot": "rwa6qG_connectionDot",
4087
+ "image": "rwa6qG_image",
4088
+ "download": "rwa6qG_download",
3917
4089
  "galleryToolbar": "rwa6qG_galleryToolbar",
3918
- "configGuideBody": "rwa6qG_configGuideBody",
3919
- "taskTrayChevron": "rwa6qG_taskTrayChevron",
3920
- "configScroll": "rwa6qG_configScroll",
3921
- "lightboxNav": "rwa6qG_lightboxNav",
3922
- "gallerySelectionClear": "rwa6qG_gallerySelectionClear",
3923
- "gallerySort": "rwa6qG_gallerySort",
3924
- "modeRow": "rwa6qG_modeRow",
3925
- "taskRow": "rwa6qG_taskRow",
3926
- "historyMeta": "rwa6qG_historyMeta",
4090
+ "gallerySelectMode": "rwa6qG_gallerySelectMode",
4091
+ "lightboxIndex": "rwa6qG_lightboxIndex",
4092
+ "configGuide": "rwa6qG_configGuide",
4093
+ "view": "rwa6qG_view",
4094
+ "panelHeader": "rwa6qG_panelHeader",
4095
+ "taskPrompt": "rwa6qG_taskPrompt",
4096
+ "modePill": "rwa6qG_modePill",
4097
+ "galleryBulkButton": "rwa6qG_galleryBulkButton",
3927
4098
  "spinner": "rwa6qG_spinner",
3928
- "studio": "rwa6qG_studio",
3929
- "entry": "rwa6qG_entry",
3930
- "canvasHistoryTag": "rwa6qG_canvasHistoryTag",
3931
- "lightboxEdit": "rwa6qG_lightboxEdit",
4099
+ "lightboxFigure": "rwa6qG_lightboxFigure",
4100
+ "referenceActions": "rwa6qG_referenceActions",
4101
+ "lightboxClose": "rwa6qG_lightboxClose",
4102
+ "referenceImage": "rwa6qG_referenceImage",
4103
+ "modelMenuItem": "rwa6qG_modelMenuItem",
3932
4104
  "promptCount": "rwa6qG_promptCount",
3933
- "panel": "rwa6qG_panel",
3934
- "image": "rwa6qG_image",
3935
- "prompt": "rwa6qG_prompt",
3936
- "galleryTagFilterList": "rwa6qG_galleryTagFilterList",
3937
- "gallerySelectMode": "rwa6qG_gallerySelectMode",
3938
- "canvasStateHint": "rwa6qG_canvasStateHint",
3939
- "generateInner": "rwa6qG_generateInner",
3940
- "galleryFilters": "rwa6qG_galleryFilters"
4105
+ "historyFilters": "rwa6qG_historyFilters",
4106
+ "galleryCardInfo": "rwa6qG_galleryCardInfo",
4107
+ "taskStatus": "rwa6qG_taskStatus",
4108
+ "entryIcon": "rwa6qG_entryIcon",
4109
+ "lightboxDownload": "rwa6qG_lightboxDownload",
4110
+ "canvas": "rwa6qG_canvas",
4111
+ "historyList": "rwa6qG_historyList",
4112
+ "compareModelChoices": "rwa6qG_compareModelChoices",
4113
+ "modelWrap": "rwa6qG_modelWrap",
4114
+ "modelLabel": "rwa6qG_modelLabel"
3941
4115
  };
3942
4116
  //#endregion
3943
4117
  //#region src/client/mount.tsx
@@ -4594,79 +4768,79 @@ window.__ModuleLoader__.load({
4594
4768
  document.head.appendChild(tag);
4595
4769
  }
4596
4770
  var settings_card_module_css_default = {
4597
- "input": "zmjoSq_input",
4598
4771
  "modelCatalogHead": "zmjoSq_modelCatalogHead",
4772
+ "modelEmpty": "zmjoSq_modelEmpty",
4773
+ "modelCatalogTools": "zmjoSq_modelCatalogTools",
4774
+ "description": "zmjoSq_description",
4599
4775
  "modelArrow": "zmjoSq_modelArrow",
4600
- "save": "zmjoSq_save",
4776
+ "chevronOpen": "zmjoSq_chevronOpen",
4601
4777
  "modelCatalog": "zmjoSq_modelCatalog",
4602
- "customSettingsSummary": "zmjoSq_customSettingsSummary",
4603
- "modelInput": "zmjoSq_modelInput",
4604
- "select": "zmjoSq_select",
4605
- "channelAdd": "zmjoSq_channelAdd",
4606
- "editorTitle": "zmjoSq_editorTitle",
4607
- "modelCatalogTools": "zmjoSq_modelCatalogTools",
4608
- "candidateList": "zmjoSq_candidateList",
4609
- "label": "zmjoSq_label",
4778
+ "channelDotReady": "zmjoSq_channelDotReady",
4779
+ "editorTag": "zmjoSq_editorTag",
4610
4780
  "channelList": "zmjoSq_channelList",
4611
- "footer": "zmjoSq_footer",
4612
- "customSettingsBody": "zmjoSq_customSettingsBody",
4613
- "body": "zmjoSq_body",
4614
- "sectionHint": "zmjoSq_sectionHint",
4615
4781
  "channelDanger": "zmjoSq_channelDanger",
4616
- "editorWrap": "zmjoSq_editorWrap",
4782
+ "candidateId": "zmjoSq_candidateId",
4783
+ "channelSection": "zmjoSq_channelSection",
4784
+ "save": "zmjoSq_save",
4617
4785
  "link": "zmjoSq_link",
4618
- "linkButton": "zmjoSq_linkButton",
4619
- "head": "zmjoSq_head",
4620
- "candidateLabel": "zmjoSq_candidateLabel",
4621
- "candidateTitle": "zmjoSq_candidateTitle",
4622
- "customSettings": "zmjoSq_customSettings",
4623
- "channelEmpty": "zmjoSq_channelEmpty",
4624
- "channelMain": "zmjoSq_channelMain",
4786
+ "channelEditor": "zmjoSq_channelEditor",
4787
+ "candidateList": "zmjoSq_candidateList",
4625
4788
  "candidate": "zmjoSq_candidate",
4626
- "chevronOpen": "zmjoSq_chevronOpen",
4627
- "discard": "zmjoSq_discard",
4789
+ "candidateActions": "zmjoSq_candidateActions",
4628
4790
  "header": "zmjoSq_header",
4629
- "channelName": "zmjoSq_channelName",
4630
- "card": "zmjoSq_card",
4631
- "channelSection": "zmjoSq_channelSection",
4632
- "editorHeader": "zmjoSq_editorHeader",
4633
- "chevron": "zmjoSq_chevron",
4634
- "channelDotWarn": "zmjoSq_channelDotWarn",
4635
- "candidateId": "zmjoSq_candidateId",
4636
- "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
4791
+ "customSettingsSummary": "zmjoSq_customSettingsSummary",
4792
+ "linkButton": "zmjoSq_linkButton",
4637
4793
  "modelCategorySelect": "zmjoSq_modelCategorySelect",
4638
- "channelBadge": "zmjoSq_channelBadge",
4794
+ "body": "zmjoSq_body",
4795
+ "channelMeta": "zmjoSq_channelMeta",
4796
+ "modelBadge": "zmjoSq_modelBadge",
4797
+ "modelRow": "zmjoSq_modelRow",
4798
+ "modelCatalogTitle": "zmjoSq_modelCatalogTitle",
4799
+ "channelHost": "zmjoSq_channelHost",
4639
4800
  "channelRow": "zmjoSq_channelRow",
4640
- "deleteConfirmText": "zmjoSq_deleteConfirmText",
4641
- "modelEmpty": "zmjoSq_modelEmpty",
4642
- "addModel": "zmjoSq_addModel",
4643
- "detectOk": "zmjoSq_detectOk",
4644
- "channelEditor": "zmjoSq_channelEditor",
4801
+ "headText": "zmjoSq_headText",
4802
+ "channelEmpty": "zmjoSq_channelEmpty",
4803
+ "channelAction": "zmjoSq_channelAction",
4804
+ "label": "zmjoSq_label",
4805
+ "readOnly": "zmjoSq_readOnly",
4645
4806
  "sectionHeader": "zmjoSq_sectionHeader",
4646
- "reset": "zmjoSq_reset",
4807
+ "modelCatalogMeta": "zmjoSq_modelCatalogMeta",
4808
+ "modelRowRemove": "zmjoSq_modelRowRemove",
4809
+ "candidateHead": "zmjoSq_candidateHead",
4810
+ "addModel": "zmjoSq_addModel",
4811
+ "sectionHint": "zmjoSq_sectionHint",
4647
4812
  "failed": "zmjoSq_failed",
4648
- "sectionTitle": "zmjoSq_sectionTitle",
4649
4813
  "candidatePanel": "zmjoSq_candidatePanel",
4650
- "channelHost": "zmjoSq_channelHost",
4651
- "readOnly": "zmjoSq_readOnly",
4652
- "channelDotReady": "zmjoSq_channelDotReady",
4653
- "channelAddRow": "zmjoSq_channelAddRow",
4654
- "editorTag": "zmjoSq_editorTag",
4655
- "modelRows": "zmjoSq_modelRows",
4656
- "modelRow": "zmjoSq_modelRow",
4657
- "candidateHead": "zmjoSq_candidateHead",
4658
- "candidateActions": "zmjoSq_candidateActions",
4814
+ "channelBadge": "zmjoSq_channelBadge",
4815
+ "channelDotWarn": "zmjoSq_channelDotWarn",
4816
+ "field": "zmjoSq_field",
4817
+ "channelName": "zmjoSq_channelName",
4659
4818
  "name": "zmjoSq_name",
4660
- "channelMeta": "zmjoSq_channelMeta",
4661
- "modelBadge": "zmjoSq_modelBadge",
4819
+ "chevron": "zmjoSq_chevron",
4820
+ "modelInput": "zmjoSq_modelInput",
4821
+ "editorHeader": "zmjoSq_editorHeader",
4822
+ "channelAddRow": "zmjoSq_channelAddRow",
4823
+ "candidateTitle": "zmjoSq_candidateTitle",
4824
+ "footer": "zmjoSq_footer",
4825
+ "detectOk": "zmjoSq_detectOk",
4662
4826
  "editorFooter": "zmjoSq_editorFooter",
4827
+ "input": "zmjoSq_input",
4828
+ "customSettingsBody": "zmjoSq_customSettingsBody",
4829
+ "modelRows": "zmjoSq_modelRows",
4830
+ "select": "zmjoSq_select",
4831
+ "editorWrap": "zmjoSq_editorWrap",
4832
+ "channelMain": "zmjoSq_channelMain",
4833
+ "channelAdd": "zmjoSq_channelAdd",
4834
+ "reset": "zmjoSq_reset",
4835
+ "customSettings": "zmjoSq_customSettings",
4836
+ "deleteConfirmText": "zmjoSq_deleteConfirmText",
4837
+ "discard": "zmjoSq_discard",
4838
+ "sectionTitle": "zmjoSq_sectionTitle",
4839
+ "head": "zmjoSq_head",
4840
+ "editorTitle": "zmjoSq_editorTitle",
4663
4841
  "pending": "zmjoSq_pending",
4664
- "field": "zmjoSq_field",
4665
- "headText": "zmjoSq_headText",
4666
- "channelAction": "zmjoSq_channelAction",
4667
- "modelRowRemove": "zmjoSq_modelRowRemove",
4668
- "modelCatalogTitle": "zmjoSq_modelCatalogTitle",
4669
- "description": "zmjoSq_description"
4842
+ "card": "zmjoSq_card",
4843
+ "candidateLabel": "zmjoSq_candidateLabel"
4670
4844
  };
4671
4845
  //#endregion
4672
4846
  //#region src/client/SettingsCard.tsx
@@ -5560,7 +5734,12 @@ window.__ModuleLoader__.load({
5560
5734
  className: settings_card_module_css_default.input,
5561
5735
  value: state.maxConcurrentGenerations.text,
5562
5736
  disabled: !state.writable,
5563
- onChange: (event) => props.edit("maxConcurrentGenerations", event.target.value)
5737
+ onChange: (event) => {
5738
+ const raw = event.target.value;
5739
+ const parsed = Number(raw);
5740
+ const value = raw === "" || !Number.isFinite(parsed) ? "" : String(Math.max(1, Math.min(20, Math.floor(parsed))));
5741
+ props.edit("maxConcurrentGenerations", value);
5742
+ }
5564
5743
  })]
5565
5744
  })
5566
5745
  }),
@@ -5606,17 +5785,17 @@ window.__ModuleLoader__.load({
5606
5785
  document.head.appendChild(tag);
5607
5786
  }
5608
5787
  var audio_toolview_module_css_default = {
5609
- "status": "_7K1QKa_status",
5610
- "empty": "_7K1QKa_empty",
5611
- "audioRow": "_7K1QKa_audioRow",
5612
- "audio": "_7K1QKa_audio",
5788
+ "download": "_7K1QKa_download",
5613
5789
  "error": "_7K1QKa_error",
5790
+ "status": "_7K1QKa_status",
5614
5791
  "audios": "_7K1QKa_audios",
5615
- "download": "_7K1QKa_download",
5792
+ "message": "_7K1QKa_message",
5793
+ "empty": "_7K1QKa_empty",
5616
5794
  "header": "_7K1QKa_header",
5795
+ "root": "_7K1QKa_root",
5617
5796
  "icon": "_7K1QKa_icon",
5618
- "message": "_7K1QKa_message",
5619
- "root": "_7K1QKa_root"
5797
+ "audioRow": "_7K1QKa_audioRow",
5798
+ "audio": "_7K1QKa_audio"
5620
5799
  };
5621
5800
  //#endregion
5622
5801
  //#region src/client/audio-toolview.tsx