@waterwx/dsh-novel-forge 1.1.0 → 1.1.1
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/README.md +6 -0
- package/lib/client.js +222 -175
- package/lib/client.js.map +1 -1
- package/lib/index.js +44 -13
- package/lib/index.js.map +1 -1
- package/lib/types/engine.d.ts +1 -1
- package/package.json +2 -2
- package/src/client/panel/NovelPanel.tsx +57 -2
- package/src/client/panel/panel.module.css +61 -0
- package/src/engine.ts +72 -10
- package/src/routes.ts +1 -1
package/lib/client.js
CHANGED
|
@@ -641,7 +641,7 @@ window.__ModuleLoader__.load({
|
|
|
641
641
|
}
|
|
642
642
|
//#endregion
|
|
643
643
|
//#region \0dsh-css:C:\Users\Ryan\Desktop\111\novel-forge\src\client\panel\panel.module.css.mjs
|
|
644
|
-
const css = ".CUIYUW_entry{width:100%;color:var(--dsw-alias-label-primary,#1f1f23);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}body[data-ds-dark-theme] .CUIYUW_entry{color:var(--dsw-alias-label-primary,#ececf1)}.CUIYUW_entry:hover{background:var(--dsw-alias-interactive-bg-hover,#7f7f7f1f)}.CUIYUW_entry[data-active]{background:var(--dsw-alias-interactive-bg-active,#7f7f7f33)}.CUIYUW_entryIcon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.CUIYUW_entryLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-pane=conversation]{position:relative}.CUIYUW_view{z-index:60;color-scheme:light;--nf-bg:#f2f2f7db;--nf-bg-raise:#ffffffb8;--nf-bg-inset:#7676801f;--nf-border:#3c3c4329;--nf-border-strong:#3c3c4352;--nf-text:#1c1c1e;--nf-text-2:#3c3c43;--nf-text-2-alpha:#3c3c43ad;--nf-text-3:#8e8e93;--nf-accent:#007aff;--nf-accent-hover:#0071e3;--nf-accent-soft:#007aff1f;--nf-accent-fg:#fff;--nf-hover:#0000000d;--nf-success:#34c759;--nf-error:#ff3b30;--nf-warn:#ff9500;--nf-info:#5856d6;--nf-shadow:0 1px 3px #0000000f, 0 12px 32px #00000014;--nf-shadow-lg:0 4px 12px #00000012, 0 20px 48px #0000001f;background:var(--nf-bg);backdrop-filter:blur(32px)saturate(180%);color:var(--nf-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro SC,PingFang SC,Segoe UI,Roboto,Helvetica Neue,sans-serif;display:none;position:absolute;inset:0;overflow:auto}body[data-ds-dark-theme] .CUIYUW_view{color-scheme:dark;--nf-bg:#000000b8;--nf-bg-raise:#1c1c1ec7;--nf-bg-inset:#7676802e;--nf-border:#ffffff1f;--nf-border-strong:#ffffff47;--nf-text:#f2f2f7;--nf-text-2:#d1d1d6;--nf-text-2-alpha:#d1d1d6b8;--nf-text-3:#8e8e93;--nf-accent:#0a84ff;--nf-accent-hover:#3a9bff;--nf-accent-soft:#0a84ff33;--nf-accent-fg:#fff;--nf-hover:#ffffff17;--nf-success:#30d158;--nf-error:#ff453a;--nf-warn:#ff9f0a;--nf-info:#bf5af2;--nf-shadow:0 1px 2px #00000059, 0 10px 30px #0006;--nf-shadow-lg:0 4px 12px #0006, 0 20px 48px #0000008c}html[data-dsh-novelforge-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) .CUIYUW_view{display:block}.CUIYUW_panel{flex-direction:column;min-width:0;height:100%;font-size:14px;line-height:1.6;display:flex;position:relative}.CUIYUW_panelHeader{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 18px;display:flex;position:sticky;top:0}.CUIYUW_panelTitle{letter-spacing:.2px;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.CUIYUW_panelTitle:before{content:\"\";background:linear-gradient(180deg, var(--nf-accent), var(--nf-info));border-radius:2px;width:4px;height:16px}.CUIYUW_iconButton{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px;padding:4px 9px;font-size:16px;transition:background .15s,color .15s}.CUIYUW_iconButton:hover{background:var(--nf-hover);color:var(--nf-text)}.CUIYUW_tabBar{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);z-index:4;flex-shrink:0;gap:2px;padding:8px 14px 0;display:flex;position:sticky;top:45px}.CUIYUW_tab{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 13px;font-size:13.5px;font-weight:500;transition:color .15s,background .15s;position:relative}.CUIYUW_tab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_tab[data-active]{color:var(--nf-accent);font-weight:600}.CUIYUW_tab[data-active]:after{content:\"\";background:var(--nf-accent);border-radius:2px 2px 0 0;height:2.5px;position:absolute;bottom:-1px;left:10px;right:10px}.CUIYUW_panelContent{flex-direction:column;flex:1;gap:14px;padding:16px 18px 20px;display:flex;overflow:auto}.CUIYUW_panelBody{flex:1;min-height:0;display:flex}.CUIYUW_panelNav{border-right:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);flex-direction:column;flex:none;gap:2px;width:142px;padding:10px 8px;transition:width .18s;display:flex;overflow-y:auto}.CUIYUW_panelNavCollapsed{width:52px;padding:10px 6px}.CUIYUW_navGroup{flex-direction:column;gap:2px;display:flex}.CUIYUW_navGroupLabel{letter-spacing:.6px;text-transform:uppercase;color:var(--nf-text-3);user-select:none;padding:6px 10px 2px;font-size:10.5px;font-weight:600}.CUIYUW_navGroupSep{background:var(--nf-border);height:1px;margin:6px 8px 4px}.CUIYUW_navSpacer{flex:1;min-height:8px}.CUIYUW_navTabBadge{background:var(--nf-accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px;display:inline-block}.CUIYUW_panelNavCollapsed .CUIYUW_navTabBadge{min-width:14px;height:14px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:2px;right:2px}.CUIYUW_navTabBadgeDanger{background:var(--nf-error)}.CUIYUW_navTabBadgeWarn{background:var(--nf-warn)}.CUIYUW_navTabBadgeDone{background:var(--nf-success)}.CUIYUW_navTab{cursor:pointer;width:100%;color:var(--nf-text-2-alpha,var(--nf-text-2));text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.CUIYUW_panelNavCollapsed .CUIYUW_navTab{justify-content:center;padding:8px 0}.CUIYUW_navTab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_navTab[data-active]{color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_navTab[data-active]:before{content:\"\";background:var(--nf-accent);border-radius:999px;width:3px;position:absolute;top:20%;bottom:20%;left:-8px}.CUIYUW_panelNavCollapsed .CUIYUW_navTab[data-active]:before{left:-6px}.CUIYUW_navTabIcon{flex:none;font-size:15px;line-height:1}.CUIYUW_navTabLabel{text-overflow:ellipsis;overflow:hidden}.CUIYUW_headerProgress{color:var(--nf-text-2);white-space:nowrap;align-items:center;gap:6px;margin-left:4px;font-size:12px;font-weight:400;display:inline-flex}.CUIYUW_headerProgress b{color:var(--nf-accent);font-weight:700}.CUIYUW_headerProgressDot{background:var(--nf-border-strong,var(--nf-text-3));border-radius:50%;width:3px;height:3px;display:inline-block}.CUIYUW_card{border:1px solid var(--nf-border);background:var(--nf-bg-raise);box-shadow:var(--nf-shadow);backdrop-filter:blur(24px)saturate(180%);border-radius:20px;flex-direction:column;gap:10px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.CUIYUW_cardTitle{color:var(--nf-text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:650;display:flex}.CUIYUW_button{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);cursor:pointer;white-space:nowrap;border-radius:12px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.CUIYUW_button:hover:not([disabled]){background:var(--nf-hover);border-color:var(--nf-border-strong)}.CUIYUW_button:active:not([disabled]){transform:scale(.96)}.CUIYUW_button[disabled]{opacity:.45;cursor:not-allowed}.CUIYUW_buttonPrimary{background:linear-gradient(180deg, color-mix(in srgb, var(--nf-accent) 88%, #fff), var(--nf-accent));color:var(--nf-accent-fg);box-shadow:0 2px 8px color-mix(in srgb, var(--nf-accent) 35%, transparent);border-color:#0000}.CUIYUW_buttonPrimary:hover:not([disabled]){background:linear-gradient(180deg, var(--nf-accent-hover), color-mix(in srgb, var(--nf-accent-hover) 85%, #000));border-color:#0000}.CUIYUW_buttonDanger{border-color:var(--nf-error);color:var(--nf-error)}.CUIYUW_buttonDanger:hover:not([disabled]){background:#ff3b301a}.CUIYUW_buttonSmall{border-radius:9px;padding:3px 10px;font-size:12px}.CUIYUW_field{flex-direction:column;gap:5px;display:flex}.CUIYUW_fieldLabel{color:var(--nf-text-2);font-size:12px;font-weight:500}.CUIYUW_input{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;border-radius:12px;width:100%;padding:7px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.CUIYUW_input:focus,.CUIYUW_textarea:focus{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft);outline:none}.CUIYUW_input::placeholder,.CUIYUW_textarea::placeholder{color:var(--nf-text-3)}.CUIYUW_textarea{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;resize:vertical;border-radius:12px;width:100%;min-height:200px;padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.7;transition:border-color .15s,box-shadow .15s}.CUIYUW_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.CUIYUW_spaceBetween{justify-content:space-between}.CUIYUW_chapterList{flex-direction:column;gap:8px;display:flex}.CUIYUW_volumeGroup{flex-direction:column;gap:6px;display:flex}.CUIYUW_volumeGroupHeader{background:var(--nf-bg-inset);border:1px solid var(--nf-border);cursor:pointer;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:border-color .15s;display:flex}.CUIYUW_volumeGroupHeader:hover{border-color:var(--nf-accent)}.CUIYUW_volumeGroupToggle{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_chapter{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.CUIYUW_chapter:hover{border-color:var(--nf-border-strong);box-shadow:var(--nf-shadow)}.CUIYUW_chapterNum{background:var(--nf-bg-inset);border:1px solid var(--nf-border);min-width:28px;height:28px;color:var(--nf-text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_chapterMain{flex:1;min-width:0}.CUIYUW_chapterTitle{color:var(--nf-text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.CUIYUW_chapterBeats{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.CUIYUW_chapterActions{opacity:.85;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.CUIYUW_chapter:hover .CUIYUW_chapterActions{opacity:1}.CUIYUW_badge{white-space:nowrap;letter-spacing:.2px;border:1px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.CUIYUW_badgePending{color:var(--nf-info);border-color:var(--nf-info);background:color-mix(in srgb, var(--nf-info) 10%, transparent)}.CUIYUW_badgeGenerating{color:var(--nf-accent);border-color:var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 12%, transparent);animation:1.2s ease-in-out infinite CUIYUW_pulse}.CUIYUW_badgeWritten{color:var(--nf-warn);border-color:var(--nf-warn);background:color-mix(in srgb, var(--nf-warn) 10%, transparent)}.CUIYUW_badgeRejected{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_badgeDone{color:var(--nf-success);border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 10%, transparent)}.CUIYUW_badgeError{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_reviewBox{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:12.5px;display:flex}.CUIYUW_chapterPreview{white-space:pre-wrap;word-break:break-all;max-height:320px;color:var(--nf-text);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:10px;margin:0;padding:10px 12px;font-family:inherit;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_chatScroll{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex-direction:column;flex:1;gap:10px;min-height:240px;max-height:480px;padding:14px;display:flex;overflow-y:auto}.CUIYUW_chatBubbleUser{background:linear-gradient(180deg, var(--nf-accent), var(--nf-accent-hover));max-width:90%;color:var(--nf-accent-fg);border-radius:14px 14px 4px;align-self:flex-end;padding:9px 14px;font-size:13px;box-shadow:0 2px 6px #4d6bfe33}.CUIYUW_chatBubbleAssistant{background:var(--nf-bg-raise);max-width:92%;color:var(--nf-text);border:1px solid var(--nf-border);box-shadow:var(--nf-shadow);border-radius:14px 14px 14px 4px;align-self:flex-start;padding:9px 14px;font-size:13px}.CUIYUW_chatRole{color:var(--nf-text-3);margin-bottom:3px;font-size:11px;font-weight:600}.CUIYUW_toolLive{background:var(--nf-bg-inset);border:1px dashed var(--nf-border-strong);white-space:pre-wrap;word-break:break-all;color:var(--nf-text-2);border-radius:8px;max-height:180px;margin-top:6px;padding:8px 10px;font-size:12px;line-height:1.7;overflow-y:auto}.CUIYUW_assistantStatus{color:var(--nf-text-2);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:999px;flex:none;align-items:center;gap:6px;margin-top:6px;padding:6px 12px;font-size:12px;display:flex}.CUIYUW_assistantStatusBusy{color:var(--nf-accent);border-color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_toolSteps{flex-direction:column;gap:4px;margin-top:6px;display:flex}.CUIYUW_toolStep{background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.CUIYUW_toolStepActive{border-color:var(--nf-accent);background:var(--nf-accent-soft)}.CUIYUW_toolStepError{border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_toolStepIcon{flex:none;font-size:13px}.CUIYUW_toolStepName{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.CUIYUW_toolStepStatus{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_toolStepActive .CUIYUW_toolStepStatus{color:var(--nf-accent)}.CUIYUW_toolStepError .CUIYUW_toolStepStatus{color:var(--nf-error)}.CUIYUW_toolStepDetail{width:100%;color:var(--nf-error);word-break:break-all;font-size:11px}.CUIYUW_progress{border:1px solid var(--nf-border);white-space:pre-wrap;word-break:break-all;min-height:60px;max-height:220px;color:var(--nf-text-2);background:var(--nf-bg-inset);border-radius:10px;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.8;overflow:auto}.CUIYUW_progressLine{color:var(--nf-text-2);opacity:.9}.CUIYUW_progressLineLive{color:var(--nf-accent);align-items:center;gap:8px;font-weight:600;display:flex}.CUIYUW_progressBar{background:var(--nf-border);border-radius:999px;flex:none;width:110px;height:6px;display:inline-block;overflow:hidden}.CUIYUW_progressBarFill{background:var(--nf-accent);border-radius:3px;height:100%;transition:width .3s;display:block}.CUIYUW_busyRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.CUIYUW_liveText{font-variant-numeric:tabular-nums;color:var(--nf-text-2);font-size:12px}.CUIYUW_bigProgressBar{background:var(--nf-border);border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.CUIYUW_bigProgressBarFill{background:linear-gradient(90deg, var(--nf-accent), var(--nf-accent-2,var(--nf-accent)));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_diffLegend{flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 8px;font-size:12px;display:flex}.CUIYUW_legendOld{color:var(--nf-error);font-weight:700}.CUIYUW_legendNew{color:var(--nf-success);font-weight:700}.CUIYUW_onlyChanges{color:var(--nf-text-2);cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.CUIYUW_diffList{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;max-height:460px;padding:10px 12px;font-size:13px;line-height:1.7;display:flex;overflow-y:auto}.CUIYUW_diffSame{border:1px dashed var(--nf-border);color:var(--nf-text-2);opacity:.85;border-radius:6px;padding:6px 10px}.CUIYUW_diffSame summary{cursor:pointer;user-select:none;font-size:12px}.CUIYUW_diffSameBody{white-space:pre-wrap;margin-top:6px}.CUIYUW_diffChange{border:1px solid var(--nf-border);border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.CUIYUW_diffColumn{flex-direction:column;gap:6px;min-width:0;padding:8px 10px;display:flex}.CUIYUW_diffColumn:first-child{border-right:1px solid var(--nf-border)}.CUIYUW_diffTagOld,.CUIYUW_diffTagNew{letter-spacing:.5px;border-radius:4px;flex:none;align-self:flex-start;padding:1px 7px;font-size:11px;font-weight:700}.CUIYUW_diffTagOld{color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-error) 45%, transparent)}.CUIYUW_diffTagNew{color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-success) 45%, transparent)}.CUIYUW_diffOld{color:var(--nf-error);white-space:pre-wrap;text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 55%, transparent)}.CUIYUW_diffNew{color:var(--nf-success);white-space:pre-wrap;font-weight:500}.CUIYUW_diffDel{border:1px solid color-mix(in srgb, var(--nf-error) 35%, transparent);background:color-mix(in srgb, var(--nf-error) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffAdd{border:1px solid color-mix(in srgb, var(--nf-success) 35%, transparent);background:color-mix(in srgb, var(--nf-success) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffText{white-space:pre-wrap}.CUIYUW_diffDel .CUIYUW_diffText{color:var(--nf-error);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 50%, transparent)}.CUIYUW_diffAdd .CUIYUW_diffText{color:var(--nf-success)}.CUIYUW_wsColumns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;display:grid}.CUIYUW_wsColumn{flex-direction:column;gap:8px;min-width:0;display:flex}.CUIYUW_wsEditor{resize:vertical;white-space:pre-wrap;flex:1;min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.75}.CUIYUW_wsSelected{border:1px solid var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 8%, transparent);border-radius:6px;max-height:120px;padding:6px 10px;overflow:auto}.CUIYUW_wsSelectedText{color:var(--nf-text-2);white-space:pre-wrap;margin-top:4px;font-size:12px}.CUIYUW_wsPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.CUIYUW_wsPreviewText{white-space:pre-wrap;max-height:320px;color:var(--nf-text);margin:0;font-size:13px;line-height:1.7;overflow:auto}.CUIYUW_assetGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.CUIYUW_assetStat{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.CUIYUW_assetStatLabel{color:var(--nf-text-2);opacity:.9;font-size:11px}.CUIYUW_assetStatValue{color:var(--nf-text);font-size:15px;font-weight:700;line-height:1.2}.CUIYUW_assetStatDetail{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.CUIYUW_dashHero{border:1px solid var(--nf-border);background:radial-gradient(1200px 400px at 110% -60%, color-mix(in srgb, var(--nf-accent) 16%, transparent), transparent 60%), linear-gradient(135deg, var(--nf-bg-raise), color-mix(in srgb, var(--nf-accent) 5%, var(--nf-bg-raise)));box-shadow:var(--nf-shadow);border-radius:16px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.CUIYUW_dashHeroEyebrow{color:var(--nf-accent);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.CUIYUW_dashHeroSparkle{font-size:14px}.CUIYUW_dashHeroTitle{flex-direction:column;gap:2px;display:flex}.CUIYUW_dashHeroBook{letter-spacing:-.3px;margin:0;font-size:24px;font-weight:700;line-height:1.25}.CUIYUW_dashHeroAction{border:1px solid var(--nf-border);background:color-mix(in srgb, var(--nf-bg-base) 65%, transparent);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.CUIYUW_dashHeroArrow{background:var(--nf-accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.CUIYUW_dashHeroActionBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_dashHeroActionTitle{font-size:14px;font-weight:600}.CUIYUW_dashJourney{flex-direction:column;gap:6px;display:flex}.CUIYUW_dashJourneyBar{background:var(--nf-border);border-radius:999px;height:6px;overflow:hidden}.CUIYUW_dashJourneyFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .4s;display:block}.CUIYUW_dashJourneyStages{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.CUIYUW_dashStage{color:var(--nf-text-3);text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:3px;font-size:11px;display:flex}.CUIYUW_dashStageDot{border:1px solid var(--nf-border-strong,var(--nf-text-3));background:var(--nf-bg-base);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex}.CUIYUW_dashStageDone{color:var(--nf-text-2)}.CUIYUW_dashStageDone .CUIYUW_dashStageDot{background:var(--nf-success);border-color:var(--nf-success);color:#fff}.CUIYUW_dashStageCurrent{color:var(--nf-accent);font-weight:600}.CUIYUW_dashStageCurrent .CUIYUW_dashStageDot{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 18%, transparent)}.CUIYUW_dashFacts{border-top:1px solid var(--nf-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:12px;display:grid}.CUIYUW_dashFact{flex-direction:column;gap:2px;min-width:0;display:flex}.CUIYUW_dashFact b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.CUIYUW_dashGrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:14px;display:grid}.CUIYUW_todoItem{border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.CUIYUW_todoDanger{border-color:color-mix(in srgb, var(--nf-error) 40%, transparent);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_todoWarning{border-color:color-mix(in srgb, var(--nf-warn) 40%, transparent);background:color-mix(in srgb, var(--nf-warn) 8%, transparent)}.CUIYUW_todoInfo{border-color:color-mix(in srgb, var(--nf-info) 40%, transparent);background:color-mix(in srgb, var(--nf-info) 7%, transparent)}.CUIYUW_todoText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_outlineReadonly{border:1px solid var(--nf-border);background:var(--nf-bg-inset);white-space:pre-wrap;user-select:text;border-radius:12px;max-height:480px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_bookCreateOutline{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.CUIYUW_assistantFloat{z-index:80;border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow-lg);border-radius:16px;flex-direction:column;min-width:320px;min-height:220px;display:flex;position:absolute;overflow:hidden}.CUIYUW_assistantFloatHeader{cursor:grab;user-select:none;border-bottom:1px solid var(--nf-border);background:var(--nf-bg-inset);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:13px;font-weight:600;display:flex}.CUIYUW_assistantFloatHeader:active{cursor:grabbing}.CUIYUW_assistantFloatBody{flex:1;min-height:0;padding:10px;display:flex;overflow:hidden}.CUIYUW_assistantFloatBody>*{flex:1;min-width:0}.CUIYUW_assistantResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 55%, var(--nf-border-strong) 55% 62%, transparent 62%) no-repeat 4px 4px / 12px 12px;width:20px;height:20px;position:absolute;bottom:0;right:0}.CUIYUW_coverPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex:none;justify-content:center;align-items:center;width:150px;height:200px;display:flex;overflow:hidden}.CUIYUW_coverPreview img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_coverPlaceholder{color:var(--nf-text-3);font-size:12px}.CUIYUW_shelfView{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow:auto}.CUIYUW_shelfHeader{flex-direction:column;gap:2px;display:flex}.CUIYUW_shelfGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:14px;display:grid}.CUIYUW_bookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow);cursor:pointer;border-radius:16px;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.CUIYUW_bookCard:hover{border-color:var(--nf-accent);box-shadow:var(--nf-shadow-lg);transform:translateY(-2px)}.CUIYUW_bookCardActive{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft)}.CUIYUW_bookCardCover{aspect-ratio:3/4;background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.CUIYUW_bookCardCover img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_bookCardCoverFallback{background:radial-gradient(400px 200px at 80% -20%, color-mix(in srgb, var(--nf-accent) 25%, transparent), transparent 70%), linear-gradient(155deg, var(--nf-bg-inset), color-mix(in srgb, var(--nf-accent) 10%, var(--nf-bg-inset)));flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;display:flex}.CUIYUW_bookCardCoverTitle{color:var(--nf-accent);letter-spacing:2px;font-size:22px;font-weight:800}.CUIYUW_bookCardBody{flex-direction:column;gap:5px;min-width:0;display:flex}.CUIYUW_bookCardTitleRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.CUIYUW_bookCardName{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.CUIYUW_bookCardBlurb{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;display:-webkit-box;overflow:hidden}.CUIYUW_bookCardProgressBar{background:var(--nf-border);border-radius:999px;height:5px;overflow:hidden}.CUIYUW_bookCardProgressFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_bookAddCard{text-align:center;color:var(--nf-text-2);border-style:dashed;justify-content:center;align-items:center;gap:8px;min-height:260px}.CUIYUW_bookAddCard:hover{color:var(--nf-accent)}.CUIYUW_bookAddIcon{color:var(--nf-accent);font-size:34px;line-height:1}.CUIYUW_bookCreateCard{border-color:var(--nf-accent);min-height:260px}.CUIYUW_createBookView{flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px 18px 24px;display:flex;overflow:auto}.CUIYUW_createBookTop{align-items:center;display:flex}.CUIYUW_createBookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);width:min(520px,100%);box-shadow:var(--nf-shadow-lg);border-radius:20px;flex-direction:column;align-self:center;gap:12px;padding:26px 28px;display:flex}.CUIYUW_createBookIcon{font-size:34px;line-height:1}.CUIYUW_createBookTitle{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:800}.CUIYUW_progressLineDone{color:var(--nf-success);font-weight:600}.CUIYUW_progressLineError{color:var(--nf-error);font-weight:600}.CUIYUW_meta{color:var(--nf-text-2);opacity:.9;font-size:12px}.CUIYUW_genreDesc{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:560px;display:-webkit-box;overflow:hidden}.CUIYUW_fileList{color:var(--nf-text-2);opacity:.9;word-break:break-all;flex-direction:column;gap:3px;font-size:12px;display:flex}.CUIYUW_panelContent::-webkit-scrollbar,.CUIYUW_chatScroll::-webkit-scrollbar,.CUIYUW_chapterPreview::-webkit-scrollbar,.CUIYUW_progress::-webkit-scrollbar,.CUIYUW_toolLive::-webkit-scrollbar{width:8px;height:8px}.CUIYUW_panelContent::-webkit-scrollbar-thumb,.CUIYUW_chatScroll::-webkit-scrollbar-thumb,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb,.CUIYUW_progress::-webkit-scrollbar-thumb,.CUIYUW_toolLive::-webkit-scrollbar-thumb{background:var(--nf-border-strong);border-radius:4px}.CUIYUW_panelContent::-webkit-scrollbar-thumb:hover,.CUIYUW_chatScroll::-webkit-scrollbar-thumb:hover,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb:hover,.CUIYUW_progress::-webkit-scrollbar-thumb:hover,.CUIYUW_toolLive::-webkit-scrollbar-thumb:hover{background:var(--nf-text-3)}.CUIYUW_workflowList{flex-direction:column;gap:0;display:flex}.CUIYUW_workflowRow{align-items:flex-start;gap:12px;padding:8px 4px;display:flex;position:relative}.CUIYUW_workflowRow:before{content:\"\";background:var(--nf-border);width:2px;position:absolute;top:34px;bottom:-8px;left:13px}.CUIYUW_workflowRow:last-child:before{display:none}.CUIYUW_workflowDot{border:2px solid var(--nf-border-strong);background:var(--nf-bg-raise);width:28px;height:28px;color:var(--nf-text-2);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_workflowDotDone{border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 15%, var(--nf-bg-raise));color:var(--nf-success)}.CUIYUW_workflowDotActive{border-color:var(--nf-accent);background:var(--nf-accent);color:var(--nf-accent-fg);box-shadow:0 0 0 4px var(--nf-accent-soft)}.CUIYUW_workflowBody{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:2px;display:flex}.CUIYUW_workflowLabel{color:var(--nf-text);font-size:13px;font-weight:600}.CUIYUW_workflowHint{color:var(--nf-text-2);font-size:12px}@keyframes CUIYUW_pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes CUIYUW_fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.CUIYUW_card{animation:.2s CUIYUW_fadeIn}.CUIYUW_bookshelf{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:8px 18px;display:flex}.CUIYUW_bookshelfLabel{color:var(--nf-text-3);letter-spacing:1px;flex-shrink:0;font-size:12px;font-weight:700}.CUIYUW_bookshelfList{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.CUIYUW_bookChip{border:1px solid var(--nf-border);background:var(--nf-bg-inset);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 10px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_bookChip:hover{border-color:var(--nf-border-strong)}.CUIYUW_bookChipActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_bookChipName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.CUIYUW_bookChipMeta{opacity:.7;white-space:nowrap;font-size:11px}.CUIYUW_bookChipRemove{color:var(--nf-text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-size:13px;line-height:1}.CUIYUW_bookChipRemove:hover{color:var(--nf-error)}.CUIYUW_bookAdd{border:1px dashed var(--nf-border-strong);color:var(--nf-text-2);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;transition:border-color .15s,color .15s}.CUIYUW_bookAdd:hover{border-color:var(--nf-accent);color:var(--nf-accent)}.CUIYUW_bookCreateForm{align-items:center;gap:6px;display:flex}.CUIYUW_dropzone{border:2px dashed var(--nf-border-strong);text-align:center;color:var(--nf-text-2);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_dropzone:hover,.CUIYUW_dropzoneActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_dropzoneIcon{font-size:22px;line-height:1}";
|
|
644
|
+
const css = ".CUIYUW_entry{width:100%;color:var(--dsw-alias-label-primary,#1f1f23);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}body[data-ds-dark-theme] .CUIYUW_entry{color:var(--dsw-alias-label-primary,#ececf1)}.CUIYUW_entry:hover{background:var(--dsw-alias-interactive-bg-hover,#7f7f7f1f)}.CUIYUW_entry[data-active]{background:var(--dsw-alias-interactive-bg-active,#7f7f7f33)}.CUIYUW_entryIcon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.CUIYUW_entryLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-pane=conversation]{position:relative}.CUIYUW_view{z-index:60;color-scheme:light;--nf-bg:#f2f2f7db;--nf-bg-raise:#ffffffb8;--nf-bg-inset:#7676801f;--nf-border:#3c3c4329;--nf-border-strong:#3c3c4352;--nf-text:#1c1c1e;--nf-text-2:#3c3c43;--nf-text-2-alpha:#3c3c43ad;--nf-text-3:#8e8e93;--nf-accent:#007aff;--nf-accent-hover:#0071e3;--nf-accent-soft:#007aff1f;--nf-accent-fg:#fff;--nf-hover:#0000000d;--nf-success:#34c759;--nf-error:#ff3b30;--nf-warn:#ff9500;--nf-info:#5856d6;--nf-shadow:0 1px 3px #0000000f, 0 12px 32px #00000014;--nf-shadow-lg:0 4px 12px #00000012, 0 20px 48px #0000001f;background:var(--nf-bg);backdrop-filter:blur(32px)saturate(180%);color:var(--nf-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro SC,PingFang SC,Segoe UI,Roboto,Helvetica Neue,sans-serif;display:none;position:absolute;inset:0;overflow:auto}body[data-ds-dark-theme] .CUIYUW_view{color-scheme:dark;--nf-bg:#000000b8;--nf-bg-raise:#1c1c1ec7;--nf-bg-inset:#7676802e;--nf-border:#ffffff1f;--nf-border-strong:#ffffff47;--nf-text:#f2f2f7;--nf-text-2:#d1d1d6;--nf-text-2-alpha:#d1d1d6b8;--nf-text-3:#8e8e93;--nf-accent:#0a84ff;--nf-accent-hover:#3a9bff;--nf-accent-soft:#0a84ff33;--nf-accent-fg:#fff;--nf-hover:#ffffff17;--nf-success:#30d158;--nf-error:#ff453a;--nf-warn:#ff9f0a;--nf-info:#bf5af2;--nf-shadow:0 1px 2px #00000059, 0 10px 30px #0006;--nf-shadow-lg:0 4px 12px #0006, 0 20px 48px #0000008c}html[data-dsh-novelforge-active]:not([data-dsh-taskboard-active]):not([data-dsh-ssh-active]) .CUIYUW_view{display:block}.CUIYUW_panel{flex-direction:column;min-width:0;height:100%;font-size:14px;line-height:1.6;display:flex;position:relative}.CUIYUW_panelHeader{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 18px;display:flex;position:sticky;top:0}.CUIYUW_panelTitle{letter-spacing:.2px;align-items:center;gap:8px;margin:0;font-size:16px;font-weight:700;display:flex}.CUIYUW_panelTitle:before{content:\"\";background:linear-gradient(180deg, var(--nf-accent), var(--nf-info));border-radius:2px;width:4px;height:16px}.CUIYUW_iconButton{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px;padding:4px 9px;font-size:16px;transition:background .15s,color .15s}.CUIYUW_iconButton:hover{background:var(--nf-hover);color:var(--nf-text)}.CUIYUW_tabBar{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);z-index:4;flex-shrink:0;gap:2px;padding:8px 14px 0;display:flex;position:sticky;top:45px}.CUIYUW_tab{cursor:pointer;color:var(--nf-text-2);background:0 0;border:none;border-radius:8px 8px 0 0;padding:7px 13px;font-size:13.5px;font-weight:500;transition:color .15s,background .15s;position:relative}.CUIYUW_tab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_tab[data-active]{color:var(--nf-accent);font-weight:600}.CUIYUW_tab[data-active]:after{content:\"\";background:var(--nf-accent);border-radius:2px 2px 0 0;height:2.5px;position:absolute;bottom:-1px;left:10px;right:10px}.CUIYUW_panelContent{flex-direction:column;flex:1;gap:14px;padding:16px 18px 20px;display:flex;overflow:auto}.CUIYUW_panelBody{flex:1;min-height:0;display:flex}.CUIYUW_panelNav{border-right:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);flex-direction:column;flex:none;gap:2px;width:142px;padding:10px 8px;transition:width .18s;display:flex;overflow-y:auto}.CUIYUW_panelNavCollapsed{width:52px;padding:10px 6px}.CUIYUW_navGroup{flex-direction:column;gap:2px;display:flex}.CUIYUW_navGroupLabel{letter-spacing:.6px;text-transform:uppercase;color:var(--nf-text-3);user-select:none;padding:6px 10px 2px;font-size:10.5px;font-weight:600}.CUIYUW_navGroupSep{background:var(--nf-border);height:1px;margin:6px 8px 4px}.CUIYUW_navSpacer{flex:1;min-height:8px}.CUIYUW_navAbout{border-top:1px solid var(--nf-border);flex-direction:column;flex:none;gap:4px;margin-top:4px;padding:8px 6px 4px;display:flex}.CUIYUW_navAboutRow{cursor:pointer;color:var(--nf-text-3);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:4px;padding:4px 6px;font-size:11px;transition:color .15s,background .15s;display:flex}.CUIYUW_navAboutRow:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_navAboutUpdate{background:var(--nf-accent-soft);color:var(--nf-accent);cursor:pointer;text-align:left;white-space:nowrap;border:none;border-radius:8px;padding:4px 6px;font-size:10.5px;font-weight:600}.CUIYUW_navAboutUpdate:hover{color:var(--nf-accent-hover)}.CUIYUW_panelNavCollapsed .CUIYUW_navAbout{align-items:center;padding:6px 2px 2px}.CUIYUW_panelNavCollapsed .CUIYUW_navAboutRow{justify-content:center;width:100%;padding:4px 0}.CUIYUW_navTabBadge{background:var(--nf-accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px;display:inline-block}.CUIYUW_panelNavCollapsed .CUIYUW_navTabBadge{min-width:14px;height:14px;padding:0 3px;font-size:9px;line-height:14px;position:absolute;top:2px;right:2px}.CUIYUW_navTabBadgeDanger{background:var(--nf-error)}.CUIYUW_navTabBadgeWarn{background:var(--nf-warn)}.CUIYUW_navTabBadgeDone{background:var(--nf-success)}.CUIYUW_navTab{cursor:pointer;width:100%;color:var(--nf-text-2-alpha,var(--nf-text-2));text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.CUIYUW_panelNavCollapsed .CUIYUW_navTab{justify-content:center;padding:8px 0}.CUIYUW_navTab:hover{color:var(--nf-text);background:var(--nf-hover)}.CUIYUW_navTab[data-active]{color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_navTab[data-active]:before{content:\"\";background:var(--nf-accent);border-radius:999px;width:3px;position:absolute;top:20%;bottom:20%;left:-8px}.CUIYUW_panelNavCollapsed .CUIYUW_navTab[data-active]:before{left:-6px}.CUIYUW_navTabIcon{flex:none;font-size:15px;line-height:1}.CUIYUW_navTabLabel{text-overflow:ellipsis;overflow:hidden}.CUIYUW_headerProgress{color:var(--nf-text-2);white-space:nowrap;align-items:center;gap:6px;margin-left:4px;font-size:12px;font-weight:400;display:inline-flex}.CUIYUW_headerProgress b{color:var(--nf-accent);font-weight:700}.CUIYUW_headerProgressDot{background:var(--nf-border-strong,var(--nf-text-3));border-radius:50%;width:3px;height:3px;display:inline-block}.CUIYUW_card{border:1px solid var(--nf-border);background:var(--nf-bg-raise);box-shadow:var(--nf-shadow);backdrop-filter:blur(24px)saturate(180%);border-radius:20px;flex-direction:column;gap:10px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.CUIYUW_cardTitle{color:var(--nf-text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:650;display:flex}.CUIYUW_button{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);cursor:pointer;white-space:nowrap;border-radius:12px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.CUIYUW_button:hover:not([disabled]){background:var(--nf-hover);border-color:var(--nf-border-strong)}.CUIYUW_button:active:not([disabled]){transform:scale(.96)}.CUIYUW_button[disabled]{opacity:.45;cursor:not-allowed}.CUIYUW_buttonPrimary{background:linear-gradient(180deg, color-mix(in srgb, var(--nf-accent) 88%, #fff), var(--nf-accent));color:var(--nf-accent-fg);box-shadow:0 2px 8px color-mix(in srgb, var(--nf-accent) 35%, transparent);border-color:#0000}.CUIYUW_buttonPrimary:hover:not([disabled]){background:linear-gradient(180deg, var(--nf-accent-hover), color-mix(in srgb, var(--nf-accent-hover) 85%, #000));border-color:#0000}.CUIYUW_buttonDanger{border-color:var(--nf-error);color:var(--nf-error)}.CUIYUW_buttonDanger:hover:not([disabled]){background:#ff3b301a}.CUIYUW_buttonSmall{border-radius:9px;padding:3px 10px;font-size:12px}.CUIYUW_field{flex-direction:column;gap:5px;display:flex}.CUIYUW_fieldLabel{color:var(--nf-text-2);font-size:12px;font-weight:500}.CUIYUW_input{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;border-radius:12px;width:100%;padding:7px 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.CUIYUW_input:focus,.CUIYUW_textarea:focus{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft);outline:none}.CUIYUW_input::placeholder,.CUIYUW_textarea::placeholder{color:var(--nf-text-3)}.CUIYUW_textarea{border:1px solid var(--nf-border-strong);background:var(--nf-bg-inset);color:var(--nf-text);box-sizing:border-box;resize:vertical;border-radius:12px;width:100%;min-height:200px;padding:9px 11px;font-family:inherit;font-size:13px;line-height:1.7;transition:border-color .15s,box-shadow .15s}.CUIYUW_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.CUIYUW_spaceBetween{justify-content:space-between}.CUIYUW_chapterList{flex-direction:column;gap:8px;display:flex}.CUIYUW_volumeGroup{flex-direction:column;gap:6px;display:flex}.CUIYUW_volumeGroupHeader{background:var(--nf-bg-inset);border:1px solid var(--nf-border);cursor:pointer;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;transition:border-color .15s;display:flex}.CUIYUW_volumeGroupHeader:hover{border-color:var(--nf-accent)}.CUIYUW_volumeGroupToggle{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_chapter{border:1px solid var(--nf-border);background:var(--nf-bg);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.CUIYUW_chapter:hover{border-color:var(--nf-border-strong);box-shadow:var(--nf-shadow)}.CUIYUW_chapterNum{background:var(--nf-bg-inset);border:1px solid var(--nf-border);min-width:28px;height:28px;color:var(--nf-text-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_chapterMain{flex:1;min-width:0}.CUIYUW_chapterTitle{color:var(--nf-text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.CUIYUW_chapterBeats{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.CUIYUW_chapterActions{opacity:.85;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.CUIYUW_chapter:hover .CUIYUW_chapterActions{opacity:1}.CUIYUW_badge{white-space:nowrap;letter-spacing:.2px;border:1px solid;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.CUIYUW_badgePending{color:var(--nf-info);border-color:var(--nf-info);background:color-mix(in srgb, var(--nf-info) 10%, transparent)}.CUIYUW_badgeGenerating{color:var(--nf-accent);border-color:var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 12%, transparent);animation:1.2s ease-in-out infinite CUIYUW_pulse}.CUIYUW_badgeWritten{color:var(--nf-warn);border-color:var(--nf-warn);background:color-mix(in srgb, var(--nf-warn) 10%, transparent)}.CUIYUW_badgeRejected{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_badgeDone{color:var(--nf-success);border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 10%, transparent)}.CUIYUW_badgeError{color:var(--nf-error);border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 10%, transparent)}.CUIYUW_reviewBox{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:12.5px;display:flex}.CUIYUW_chapterPreview{white-space:pre-wrap;word-break:break-all;max-height:320px;color:var(--nf-text);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:10px;margin:0;padding:10px 12px;font-family:inherit;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_chatScroll{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex-direction:column;flex:1;gap:10px;min-height:240px;max-height:480px;padding:14px;display:flex;overflow-y:auto}.CUIYUW_chatBubbleUser{background:linear-gradient(180deg, var(--nf-accent), var(--nf-accent-hover));max-width:90%;color:var(--nf-accent-fg);border-radius:14px 14px 4px;align-self:flex-end;padding:9px 14px;font-size:13px;box-shadow:0 2px 6px #4d6bfe33}.CUIYUW_chatBubbleAssistant{background:var(--nf-bg-raise);max-width:92%;color:var(--nf-text);border:1px solid var(--nf-border);box-shadow:var(--nf-shadow);border-radius:14px 14px 14px 4px;align-self:flex-start;padding:9px 14px;font-size:13px}.CUIYUW_chatRole{color:var(--nf-text-3);margin-bottom:3px;font-size:11px;font-weight:600}.CUIYUW_toolLive{background:var(--nf-bg-inset);border:1px dashed var(--nf-border-strong);white-space:pre-wrap;word-break:break-all;color:var(--nf-text-2);border-radius:8px;max-height:180px;margin-top:6px;padding:8px 10px;font-size:12px;line-height:1.7;overflow-y:auto}.CUIYUW_assistantStatus{color:var(--nf-text-2);background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:999px;flex:none;align-items:center;gap:6px;margin-top:6px;padding:6px 12px;font-size:12px;display:flex}.CUIYUW_assistantStatusBusy{color:var(--nf-accent);border-color:var(--nf-accent);background:var(--nf-accent-soft);font-weight:600}.CUIYUW_toolSteps{flex-direction:column;gap:4px;margin-top:6px;display:flex}.CUIYUW_toolStep{background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:flex}.CUIYUW_toolStepActive{border-color:var(--nf-accent);background:var(--nf-accent-soft)}.CUIYUW_toolStepError{border-color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_toolStepIcon{flex:none;font-size:13px}.CUIYUW_toolStepName{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.CUIYUW_toolStepStatus{color:var(--nf-text-2);flex:none;font-size:11px}.CUIYUW_toolStepActive .CUIYUW_toolStepStatus{color:var(--nf-accent)}.CUIYUW_toolStepError .CUIYUW_toolStepStatus{color:var(--nf-error)}.CUIYUW_toolStepDetail{width:100%;color:var(--nf-error);word-break:break-all;font-size:11px}.CUIYUW_progress{border:1px solid var(--nf-border);white-space:pre-wrap;word-break:break-all;min-height:60px;max-height:220px;color:var(--nf-text-2);background:var(--nf-bg-inset);border-radius:10px;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.8;overflow:auto}.CUIYUW_progressLine{color:var(--nf-text-2);opacity:.9}.CUIYUW_progressLineLive{color:var(--nf-accent);align-items:center;gap:8px;font-weight:600;display:flex}.CUIYUW_progressBar{background:var(--nf-border);border-radius:999px;flex:none;width:110px;height:6px;display:inline-block;overflow:hidden}.CUIYUW_progressBarFill{background:var(--nf-accent);border-radius:3px;height:100%;transition:width .3s;display:block}.CUIYUW_busyRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.CUIYUW_liveText{font-variant-numeric:tabular-nums;color:var(--nf-text-2);font-size:12px}.CUIYUW_bigProgressBar{background:var(--nf-border);border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.CUIYUW_bigProgressBarFill{background:linear-gradient(90deg, var(--nf-accent), var(--nf-accent-2,var(--nf-accent)));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_diffLegend{flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 8px;font-size:12px;display:flex}.CUIYUW_legendOld{color:var(--nf-error);font-weight:700}.CUIYUW_legendNew{color:var(--nf-success);font-weight:700}.CUIYUW_onlyChanges{color:var(--nf-text-2);cursor:pointer;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.CUIYUW_diffList{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;max-height:460px;padding:10px 12px;font-size:13px;line-height:1.7;display:flex;overflow-y:auto}.CUIYUW_diffSame{border:1px dashed var(--nf-border);color:var(--nf-text-2);opacity:.85;border-radius:6px;padding:6px 10px}.CUIYUW_diffSame summary{cursor:pointer;user-select:none;font-size:12px}.CUIYUW_diffSameBody{white-space:pre-wrap;margin-top:6px}.CUIYUW_diffChange{border:1px solid var(--nf-border);border-radius:8px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.CUIYUW_diffColumn{flex-direction:column;gap:6px;min-width:0;padding:8px 10px;display:flex}.CUIYUW_diffColumn:first-child{border-right:1px solid var(--nf-border)}.CUIYUW_diffTagOld,.CUIYUW_diffTagNew{letter-spacing:.5px;border-radius:4px;flex:none;align-self:flex-start;padding:1px 7px;font-size:11px;font-weight:700}.CUIYUW_diffTagOld{color:var(--nf-error);background:color-mix(in srgb, var(--nf-error) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-error) 45%, transparent)}.CUIYUW_diffTagNew{color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 16%, transparent);border:1px solid color-mix(in srgb, var(--nf-success) 45%, transparent)}.CUIYUW_diffOld{color:var(--nf-error);white-space:pre-wrap;text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 55%, transparent)}.CUIYUW_diffNew{color:var(--nf-success);white-space:pre-wrap;font-weight:500}.CUIYUW_diffDel{border:1px solid color-mix(in srgb, var(--nf-error) 35%, transparent);background:color-mix(in srgb, var(--nf-error) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffAdd{border:1px solid color-mix(in srgb, var(--nf-success) 35%, transparent);background:color-mix(in srgb, var(--nf-success) 7%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:6px 10px;display:flex}.CUIYUW_diffText{white-space:pre-wrap}.CUIYUW_diffDel .CUIYUW_diffText{color:var(--nf-error);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--nf-error) 50%, transparent)}.CUIYUW_diffAdd .CUIYUW_diffText{color:var(--nf-success)}.CUIYUW_wsColumns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;display:grid}.CUIYUW_wsColumn{flex-direction:column;gap:8px;min-width:0;display:flex}.CUIYUW_wsEditor{resize:vertical;white-space:pre-wrap;flex:1;min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.75}.CUIYUW_wsSelected{border:1px solid var(--nf-accent);background:color-mix(in srgb, var(--nf-accent) 8%, transparent);border-radius:6px;max-height:120px;padding:6px 10px;overflow:auto}.CUIYUW_wsSelectedText{color:var(--nf-text-2);white-space:pre-wrap;margin-top:4px;font-size:12px}.CUIYUW_wsPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:8px;flex-direction:column;gap:8px;padding:8px 10px;display:flex}.CUIYUW_wsPreviewText{white-space:pre-wrap;max-height:320px;color:var(--nf-text);margin:0;font-size:13px;line-height:1.7;overflow:auto}.CUIYUW_assetGrid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.CUIYUW_assetStat{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.CUIYUW_assetStatLabel{color:var(--nf-text-2);opacity:.9;font-size:11px}.CUIYUW_assetStatValue{color:var(--nf-text);font-size:15px;font-weight:700;line-height:1.2}.CUIYUW_assetStatDetail{color:var(--nf-text-2);opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.CUIYUW_dashHero{border:1px solid var(--nf-border);background:radial-gradient(1200px 400px at 110% -60%, color-mix(in srgb, var(--nf-accent) 16%, transparent), transparent 60%), linear-gradient(135deg, var(--nf-bg-raise), color-mix(in srgb, var(--nf-accent) 5%, var(--nf-bg-raise)));box-shadow:var(--nf-shadow);border-radius:16px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.CUIYUW_dashHeroEyebrow{color:var(--nf-accent);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.CUIYUW_dashHeroSparkle{font-size:14px}.CUIYUW_dashHeroTitle{flex-direction:column;gap:2px;display:flex}.CUIYUW_dashHeroBook{letter-spacing:-.3px;margin:0;font-size:24px;font-weight:700;line-height:1.25}.CUIYUW_dashHeroAction{border:1px solid var(--nf-border);background:color-mix(in srgb, var(--nf-bg-base) 65%, transparent);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.CUIYUW_dashHeroArrow{background:var(--nf-accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:inline-flex}.CUIYUW_dashHeroActionBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_dashHeroActionTitle{font-size:14px;font-weight:600}.CUIYUW_dashJourney{flex-direction:column;gap:6px;display:flex}.CUIYUW_dashJourneyBar{background:var(--nf-border);border-radius:999px;height:6px;overflow:hidden}.CUIYUW_dashJourneyFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .4s;display:block}.CUIYUW_dashJourneyStages{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.CUIYUW_dashStage{color:var(--nf-text-3);text-align:center;white-space:nowrap;flex-direction:column;align-items:center;gap:3px;font-size:11px;display:flex}.CUIYUW_dashStageDot{border:1px solid var(--nf-border-strong,var(--nf-text-3));background:var(--nf-bg-base);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;display:inline-flex}.CUIYUW_dashStageDone{color:var(--nf-text-2)}.CUIYUW_dashStageDone .CUIYUW_dashStageDot{background:var(--nf-success);border-color:var(--nf-success);color:#fff}.CUIYUW_dashStageCurrent{color:var(--nf-accent);font-weight:600}.CUIYUW_dashStageCurrent .CUIYUW_dashStageDot{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--nf-accent) 18%, transparent)}.CUIYUW_dashFacts{border-top:1px solid var(--nf-border);grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:12px;display:grid}.CUIYUW_dashFact{flex-direction:column;gap:2px;min-width:0;display:flex}.CUIYUW_dashFact b{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.CUIYUW_dashGrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:14px;display:grid}.CUIYUW_todoItem{border:1px solid var(--nf-border);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.CUIYUW_todoDanger{border-color:color-mix(in srgb, var(--nf-error) 40%, transparent);background:color-mix(in srgb, var(--nf-error) 8%, transparent)}.CUIYUW_todoWarning{border-color:color-mix(in srgb, var(--nf-warn) 40%, transparent);background:color-mix(in srgb, var(--nf-warn) 8%, transparent)}.CUIYUW_todoInfo{border-color:color-mix(in srgb, var(--nf-info) 40%, transparent);background:color-mix(in srgb, var(--nf-info) 7%, transparent)}.CUIYUW_todoText{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.CUIYUW_outlineReadonly{border:1px solid var(--nf-border);background:var(--nf-bg-inset);white-space:pre-wrap;user-select:text;border-radius:12px;max-height:480px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.8;overflow:auto}.CUIYUW_bookCreateOutline{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.CUIYUW_assistantFloat{z-index:80;border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow-lg);border-radius:16px;flex-direction:column;min-width:320px;min-height:220px;display:flex;position:absolute;overflow:hidden}.CUIYUW_assistantFloatHeader{cursor:grab;user-select:none;border-bottom:1px solid var(--nf-border);background:var(--nf-bg-inset);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 14px;font-size:13px;font-weight:600;display:flex}.CUIYUW_assistantFloatHeader:active{cursor:grabbing}.CUIYUW_assistantFloatBody{flex:1;min-height:0;padding:10px;display:flex;overflow:hidden}.CUIYUW_assistantFloatBody>*{flex:1;min-width:0}.CUIYUW_assistantResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 55%, var(--nf-border-strong) 55% 62%, transparent 62%) no-repeat 4px 4px / 12px 12px;width:20px;height:20px;position:absolute;bottom:0;right:0}.CUIYUW_coverPreview{border:1px solid var(--nf-border);background:var(--nf-bg-inset);border-radius:12px;flex:none;justify-content:center;align-items:center;width:150px;height:200px;display:flex;overflow:hidden}.CUIYUW_coverPreview img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_coverPlaceholder{color:var(--nf-text-3);font-size:12px}.CUIYUW_shelfView{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow:auto}.CUIYUW_shelfHeader{flex-direction:column;gap:2px;display:flex}.CUIYUW_shelfGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:14px;display:grid}.CUIYUW_bookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);box-shadow:var(--nf-shadow);cursor:pointer;border-radius:16px;flex-direction:column;gap:8px;padding:12px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex}.CUIYUW_bookCard:hover{border-color:var(--nf-accent);box-shadow:var(--nf-shadow-lg);transform:translateY(-2px)}.CUIYUW_bookCardActive{border-color:var(--nf-accent);box-shadow:0 0 0 3px var(--nf-accent-soft)}.CUIYUW_bookCardCover{aspect-ratio:3/4;background:var(--nf-bg-inset);border:1px solid var(--nf-border);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.CUIYUW_bookCardCover img{object-fit:contain;width:100%;height:100%;display:block}.CUIYUW_bookCardCoverFallback{background:radial-gradient(400px 200px at 80% -20%, color-mix(in srgb, var(--nf-accent) 25%, transparent), transparent 70%), linear-gradient(155deg, var(--nf-bg-inset), color-mix(in srgb, var(--nf-accent) 10%, var(--nf-bg-inset)));flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;display:flex}.CUIYUW_bookCardCoverTitle{color:var(--nf-accent);letter-spacing:2px;font-size:22px;font-weight:800}.CUIYUW_bookCardBody{flex-direction:column;gap:5px;min-width:0;display:flex}.CUIYUW_bookCardTitleRow{justify-content:space-between;align-items:center;gap:6px;display:flex}.CUIYUW_bookCardName{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.CUIYUW_bookCardBlurb{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:34px;display:-webkit-box;overflow:hidden}.CUIYUW_bookCardProgressBar{background:var(--nf-border);border-radius:999px;height:5px;overflow:hidden}.CUIYUW_bookCardProgressFill{background:linear-gradient(90deg, var(--nf-info), var(--nf-accent));border-radius:999px;height:100%;transition:width .3s;display:block}.CUIYUW_bookAddCard{text-align:center;color:var(--nf-text-2);border-style:dashed;justify-content:center;align-items:center;gap:8px;min-height:260px}.CUIYUW_bookAddCard:hover{color:var(--nf-accent)}.CUIYUW_bookAddIcon{color:var(--nf-accent);font-size:34px;line-height:1}.CUIYUW_bookCreateCard{border-color:var(--nf-accent);min-height:260px}.CUIYUW_createBookView{flex-direction:column;flex:1;gap:14px;min-height:0;padding:14px 18px 24px;display:flex;overflow:auto}.CUIYUW_createBookTop{align-items:center;display:flex}.CUIYUW_createBookCard{border:1px solid var(--nf-border);background:var(--nf-bg-raise);backdrop-filter:blur(24px)saturate(180%);width:min(520px,100%);box-shadow:var(--nf-shadow-lg);border-radius:20px;flex-direction:column;align-self:center;gap:12px;padding:26px 28px;display:flex}.CUIYUW_createBookIcon{font-size:34px;line-height:1}.CUIYUW_createBookTitle{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:800}.CUIYUW_progressLineDone{color:var(--nf-success);font-weight:600}.CUIYUW_progressLineError{color:var(--nf-error);font-weight:600}.CUIYUW_meta{color:var(--nf-text-2);opacity:.9;font-size:12px}.CUIYUW_genreDesc{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:560px;display:-webkit-box;overflow:hidden}.CUIYUW_fileList{color:var(--nf-text-2);opacity:.9;word-break:break-all;flex-direction:column;gap:3px;font-size:12px;display:flex}.CUIYUW_panelContent::-webkit-scrollbar,.CUIYUW_chatScroll::-webkit-scrollbar,.CUIYUW_chapterPreview::-webkit-scrollbar,.CUIYUW_progress::-webkit-scrollbar,.CUIYUW_toolLive::-webkit-scrollbar{width:8px;height:8px}.CUIYUW_panelContent::-webkit-scrollbar-thumb,.CUIYUW_chatScroll::-webkit-scrollbar-thumb,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb,.CUIYUW_progress::-webkit-scrollbar-thumb,.CUIYUW_toolLive::-webkit-scrollbar-thumb{background:var(--nf-border-strong);border-radius:4px}.CUIYUW_panelContent::-webkit-scrollbar-thumb:hover,.CUIYUW_chatScroll::-webkit-scrollbar-thumb:hover,.CUIYUW_chapterPreview::-webkit-scrollbar-thumb:hover,.CUIYUW_progress::-webkit-scrollbar-thumb:hover,.CUIYUW_toolLive::-webkit-scrollbar-thumb:hover{background:var(--nf-text-3)}.CUIYUW_workflowList{flex-direction:column;gap:0;display:flex}.CUIYUW_workflowRow{align-items:flex-start;gap:12px;padding:8px 4px;display:flex;position:relative}.CUIYUW_workflowRow:before{content:\"\";background:var(--nf-border);width:2px;position:absolute;top:34px;bottom:-8px;left:13px}.CUIYUW_workflowRow:last-child:before{display:none}.CUIYUW_workflowDot{border:2px solid var(--nf-border-strong);background:var(--nf-bg-raise);width:28px;height:28px;color:var(--nf-text-2);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.CUIYUW_workflowDotDone{border-color:var(--nf-success);background:color-mix(in srgb, var(--nf-success) 15%, var(--nf-bg-raise));color:var(--nf-success)}.CUIYUW_workflowDotActive{border-color:var(--nf-accent);background:var(--nf-accent);color:var(--nf-accent-fg);box-shadow:0 0 0 4px var(--nf-accent-soft)}.CUIYUW_workflowBody{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:2px;display:flex}.CUIYUW_workflowLabel{color:var(--nf-text);font-size:13px;font-weight:600}.CUIYUW_workflowHint{color:var(--nf-text-2);font-size:12px}@keyframes CUIYUW_pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes CUIYUW_fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.CUIYUW_card{animation:.2s CUIYUW_fadeIn}.CUIYUW_bookshelf{border-bottom:1px solid var(--nf-border);background:var(--nf-bg-raise);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:8px 18px;display:flex}.CUIYUW_bookshelfLabel{color:var(--nf-text-3);letter-spacing:1px;flex-shrink:0;font-size:12px;font-weight:700}.CUIYUW_bookshelfList{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.CUIYUW_bookChip{border:1px solid var(--nf-border);background:var(--nf-bg-inset);cursor:pointer;border-radius:999px;align-items:center;gap:6px;max-width:220px;padding:4px 8px 4px 10px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_bookChip:hover{border-color:var(--nf-border-strong)}.CUIYUW_bookChipActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_bookChipName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.CUIYUW_bookChipMeta{opacity:.7;white-space:nowrap;font-size:11px}.CUIYUW_bookChipRemove{color:var(--nf-text-3);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-size:13px;line-height:1}.CUIYUW_bookChipRemove:hover{color:var(--nf-error)}.CUIYUW_bookAdd{border:1px dashed var(--nf-border-strong);color:var(--nf-text-2);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:12px;transition:border-color .15s,color .15s}.CUIYUW_bookAdd:hover{border-color:var(--nf-accent);color:var(--nf-accent)}.CUIYUW_bookCreateForm{align-items:center;gap:6px;display:flex}.CUIYUW_dropzone{border:2px dashed var(--nf-border-strong);text-align:center;color:var(--nf-text-2);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.CUIYUW_dropzone:hover,.CUIYUW_dropzoneActive{border-color:var(--nf-accent);background:var(--nf-accent-soft);color:var(--nf-accent)}.CUIYUW_dropzoneIcon{font-size:22px;line-height:1}";
|
|
645
645
|
const tagId = "@waterwx/dsh-novel-forge/panel.module.css";
|
|
646
646
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
647
647
|
const tag = document.createElement("style");
|
|
@@ -651,199 +651,202 @@ window.__ModuleLoader__.load({
|
|
|
651
651
|
document.head.appendChild(tag);
|
|
652
652
|
}
|
|
653
653
|
var panel_module_css_default = {
|
|
654
|
-
"bookAdd": "CUIYUW_bookAdd",
|
|
655
|
-
"toolLive": "CUIYUW_toolLive",
|
|
656
|
-
"wsColumn": "CUIYUW_wsColumn",
|
|
657
|
-
"dashGrid": "CUIYUW_dashGrid",
|
|
658
|
-
"coverPreview": "CUIYUW_coverPreview",
|
|
659
|
-
"progressLineError": "CUIYUW_progressLineError",
|
|
660
|
-
"toolStepIcon": "CUIYUW_toolStepIcon",
|
|
661
|
-
"navTabBadgeDanger": "CUIYUW_navTabBadgeDanger",
|
|
662
|
-
"chapterNum": "CUIYUW_chapterNum",
|
|
663
|
-
"navGroupSep": "CUIYUW_navGroupSep",
|
|
664
|
-
"chatRole": "CUIYUW_chatRole",
|
|
665
|
-
"workflowDotDone": "CUIYUW_workflowDotDone",
|
|
666
|
-
"diffList": "CUIYUW_diffList",
|
|
667
|
-
"diffNew": "CUIYUW_diffNew",
|
|
668
|
-
"fadeIn": "CUIYUW_fadeIn",
|
|
669
|
-
"diffOld": "CUIYUW_diffOld",
|
|
670
|
-
"headerProgress": "CUIYUW_headerProgress",
|
|
671
|
-
"fieldLabel": "CUIYUW_fieldLabel",
|
|
672
|
-
"bookChip": "CUIYUW_bookChip",
|
|
673
|
-
"volumeGroup": "CUIYUW_volumeGroup",
|
|
674
|
-
"diffTagOld": "CUIYUW_diffTagOld",
|
|
675
|
-
"navTabLabel": "CUIYUW_navTabLabel",
|
|
676
|
-
"dashHeroActionBody": "CUIYUW_dashHeroActionBody",
|
|
677
|
-
"workflowDot": "CUIYUW_workflowDot",
|
|
678
|
-
"bookChipActive": "CUIYUW_bookChipActive",
|
|
679
|
-
"panelNavCollapsed": "CUIYUW_panelNavCollapsed",
|
|
680
|
-
"badgeRejected": "CUIYUW_badgeRejected",
|
|
681
|
-
"entry": "CUIYUW_entry",
|
|
682
|
-
"wsSelected": "CUIYUW_wsSelected",
|
|
683
|
-
"badgeGenerating": "CUIYUW_badgeGenerating",
|
|
684
|
-
"onlyChanges": "CUIYUW_onlyChanges",
|
|
685
|
-
"navTabBadge": "CUIYUW_navTabBadge",
|
|
686
|
-
"bigProgressBar": "CUIYUW_bigProgressBar",
|
|
687
|
-
"diffDel": "CUIYUW_diffDel",
|
|
688
|
-
"busyRow": "CUIYUW_busyRow",
|
|
689
|
-
"badgeWritten": "CUIYUW_badgeWritten",
|
|
690
|
-
"badgePending": "CUIYUW_badgePending",
|
|
691
|
-
"assetStatValue": "CUIYUW_assetStatValue",
|
|
692
|
-
"assistantResize": "CUIYUW_assistantResize",
|
|
693
|
-
"toolStepName": "CUIYUW_toolStepName",
|
|
694
|
-
"bookCardProgressBar": "CUIYUW_bookCardProgressBar",
|
|
695
|
-
"progressLineDone": "CUIYUW_progressLineDone",
|
|
696
|
-
"pulse": "CUIYUW_pulse",
|
|
697
|
-
"navSpacer": "CUIYUW_navSpacer",
|
|
698
|
-
"buttonPrimary": "CUIYUW_buttonPrimary",
|
|
699
|
-
"liveText": "CUIYUW_liveText",
|
|
700
|
-
"createBookView": "CUIYUW_createBookView",
|
|
701
|
-
"panelTitle": "CUIYUW_panelTitle",
|
|
702
|
-
"wsPreview": "CUIYUW_wsPreview",
|
|
703
654
|
"workflowRow": "CUIYUW_workflowRow",
|
|
704
|
-
"
|
|
705
|
-
"
|
|
706
|
-
"
|
|
655
|
+
"navTab": "CUIYUW_navTab",
|
|
656
|
+
"dropzone": "CUIYUW_dropzone",
|
|
657
|
+
"dashHeroBook": "CUIYUW_dashHeroBook",
|
|
658
|
+
"bookCardActive": "CUIYUW_bookCardActive",
|
|
659
|
+
"pulse": "CUIYUW_pulse",
|
|
660
|
+
"dashStageDot": "CUIYUW_dashStageDot",
|
|
661
|
+
"diffSame": "CUIYUW_diffSame",
|
|
662
|
+
"workflowDotActive": "CUIYUW_workflowDotActive",
|
|
663
|
+
"badgeError": "CUIYUW_badgeError",
|
|
664
|
+
"bookCard": "CUIYUW_bookCard",
|
|
707
665
|
"wsPreviewText": "CUIYUW_wsPreviewText",
|
|
708
|
-
"
|
|
709
|
-
"assetStatLabel": "CUIYUW_assetStatLabel",
|
|
710
|
-
"progressBarFill": "CUIYUW_progressBarFill",
|
|
711
|
-
"outlineReadonly": "CUIYUW_outlineReadonly",
|
|
666
|
+
"entryIcon": "CUIYUW_entryIcon",
|
|
712
667
|
"button": "CUIYUW_button",
|
|
713
|
-
"
|
|
714
|
-
"
|
|
668
|
+
"bookAddIcon": "CUIYUW_bookAddIcon",
|
|
669
|
+
"buttonDanger": "CUIYUW_buttonDanger",
|
|
670
|
+
"dashHeroSparkle": "CUIYUW_dashHeroSparkle",
|
|
671
|
+
"todoItem": "CUIYUW_todoItem",
|
|
715
672
|
"bookshelf": "CUIYUW_bookshelf",
|
|
716
|
-
"
|
|
717
|
-
"
|
|
718
|
-
"
|
|
673
|
+
"panelNav": "CUIYUW_panelNav",
|
|
674
|
+
"toolStep": "CUIYUW_toolStep",
|
|
675
|
+
"progressBar": "CUIYUW_progressBar",
|
|
676
|
+
"bigProgressBarFill": "CUIYUW_bigProgressBarFill",
|
|
677
|
+
"panelContent": "CUIYUW_panelContent",
|
|
678
|
+
"workflowBody": "CUIYUW_workflowBody",
|
|
679
|
+
"badgeGenerating": "CUIYUW_badgeGenerating",
|
|
680
|
+
"progressLineLive": "CUIYUW_progressLineLive",
|
|
719
681
|
"chapterPreview": "CUIYUW_chapterPreview",
|
|
720
|
-
"
|
|
721
|
-
"
|
|
722
|
-
"
|
|
723
|
-
"
|
|
724
|
-
"
|
|
725
|
-
"
|
|
726
|
-
"bookCreateForm": "CUIYUW_bookCreateForm",
|
|
727
|
-
"dropzoneIcon": "CUIYUW_dropzoneIcon",
|
|
728
|
-
"diffSameBody": "CUIYUW_diffSameBody",
|
|
682
|
+
"dashHeroArrow": "CUIYUW_dashHeroArrow",
|
|
683
|
+
"wsSelected": "CUIYUW_wsSelected",
|
|
684
|
+
"diffTagOld": "CUIYUW_diffTagOld",
|
|
685
|
+
"genreDesc": "CUIYUW_genreDesc",
|
|
686
|
+
"workflowLabel": "CUIYUW_workflowLabel",
|
|
687
|
+
"toolStepName": "CUIYUW_toolStepName",
|
|
729
688
|
"assistantFloatBody": "CUIYUW_assistantFloatBody",
|
|
730
|
-
"
|
|
731
|
-
"
|
|
689
|
+
"createBookCard": "CUIYUW_createBookCard",
|
|
690
|
+
"workflowDot": "CUIYUW_workflowDot",
|
|
691
|
+
"spaceBetween": "CUIYUW_spaceBetween",
|
|
692
|
+
"toolSteps": "CUIYUW_toolSteps",
|
|
693
|
+
"workflowDotDone": "CUIYUW_workflowDotDone",
|
|
694
|
+
"navTabLabel": "CUIYUW_navTabLabel",
|
|
732
695
|
"input": "CUIYUW_input",
|
|
733
|
-
"
|
|
696
|
+
"bookCreateCard": "CUIYUW_bookCreateCard",
|
|
697
|
+
"bookChipName": "CUIYUW_bookChipName",
|
|
698
|
+
"bookCardBody": "CUIYUW_bookCardBody",
|
|
699
|
+
"view": "CUIYUW_view",
|
|
700
|
+
"diffChange": "CUIYUW_diffChange",
|
|
701
|
+
"chatBubbleUser": "CUIYUW_chatBubbleUser",
|
|
702
|
+
"diffAdd": "CUIYUW_diffAdd",
|
|
703
|
+
"assetGrid": "CUIYUW_assetGrid",
|
|
704
|
+
"chapterTitle": "CUIYUW_chapterTitle",
|
|
705
|
+
"assetStatDetail": "CUIYUW_assetStatDetail",
|
|
706
|
+
"dashHeroAction": "CUIYUW_dashHeroAction",
|
|
707
|
+
"dashStageDone": "CUIYUW_dashStageDone",
|
|
708
|
+
"bookCardCover": "CUIYUW_bookCardCover",
|
|
709
|
+
"shelfHeader": "CUIYUW_shelfHeader",
|
|
710
|
+
"buttonPrimary": "CUIYUW_buttonPrimary",
|
|
711
|
+
"bigProgressBar": "CUIYUW_bigProgressBar",
|
|
712
|
+
"bookAddCard": "CUIYUW_bookAddCard",
|
|
713
|
+
"panelHeader": "CUIYUW_panelHeader",
|
|
714
|
+
"headerProgress": "CUIYUW_headerProgress",
|
|
715
|
+
"assetStat": "CUIYUW_assetStat",
|
|
716
|
+
"assistantStatusBusy": "CUIYUW_assistantStatusBusy",
|
|
717
|
+
"wsPreview": "CUIYUW_wsPreview",
|
|
718
|
+
"meta": "CUIYUW_meta",
|
|
734
719
|
"wsSelectedText": "CUIYUW_wsSelectedText",
|
|
735
|
-
"
|
|
736
|
-
"
|
|
737
|
-
"
|
|
738
|
-
"
|
|
739
|
-
"
|
|
740
|
-
"
|
|
741
|
-
"panelNav": "CUIYUW_panelNav",
|
|
742
|
-
"dashHero": "CUIYUW_dashHero",
|
|
743
|
-
"genreDesc": "CUIYUW_genreDesc",
|
|
744
|
-
"navGroup": "CUIYUW_navGroup",
|
|
720
|
+
"dashJourney": "CUIYUW_dashJourney",
|
|
721
|
+
"entry": "CUIYUW_entry",
|
|
722
|
+
"chatScroll": "CUIYUW_chatScroll",
|
|
723
|
+
"dashJourneyBar": "CUIYUW_dashJourneyBar",
|
|
724
|
+
"liveText": "CUIYUW_liveText",
|
|
725
|
+
"bookCardCoverTitle": "CUIYUW_bookCardCoverTitle",
|
|
745
726
|
"bookshelfList": "CUIYUW_bookshelfList",
|
|
727
|
+
"buttonSmall": "CUIYUW_buttonSmall",
|
|
728
|
+
"navAboutRow": "CUIYUW_navAboutRow",
|
|
729
|
+
"bookChip": "CUIYUW_bookChip",
|
|
730
|
+
"toolStepActive": "CUIYUW_toolStepActive",
|
|
731
|
+
"diffColumn": "CUIYUW_diffColumn",
|
|
732
|
+
"assetStatLabel": "CUIYUW_assetStatLabel",
|
|
733
|
+
"bookChipMeta": "CUIYUW_bookChipMeta",
|
|
746
734
|
"field": "CUIYUW_field",
|
|
747
|
-
"
|
|
748
|
-
"
|
|
749
|
-
"
|
|
750
|
-
"
|
|
751
|
-
"
|
|
752
|
-
"
|
|
753
|
-
"chapterMain": "CUIYUW_chapterMain",
|
|
754
|
-
"assistantStatusBusy": "CUIYUW_assistantStatusBusy",
|
|
755
|
-
"chatScroll": "CUIYUW_chatScroll",
|
|
756
|
-
"assistantStatus": "CUIYUW_assistantStatus",
|
|
757
|
-
"bookCardCover": "CUIYUW_bookCardCover",
|
|
758
|
-
"assistantFloatHeader": "CUIYUW_assistantFloatHeader",
|
|
759
|
-
"bookCardCoverFallback": "CUIYUW_bookCardCoverFallback",
|
|
760
|
-
"tabBar": "CUIYUW_tabBar",
|
|
761
|
-
"dashHeroAction": "CUIYUW_dashHeroAction",
|
|
735
|
+
"chapterNum": "CUIYUW_chapterNum",
|
|
736
|
+
"dashHeroActionBody": "CUIYUW_dashHeroActionBody",
|
|
737
|
+
"dashStageCurrent": "CUIYUW_dashStageCurrent",
|
|
738
|
+
"todoDanger": "CUIYUW_todoDanger",
|
|
739
|
+
"dropzoneActive": "CUIYUW_dropzoneActive",
|
|
740
|
+
"toolStepDetail": "CUIYUW_toolStepDetail",
|
|
762
741
|
"chapter": "CUIYUW_chapter",
|
|
763
|
-
"tab": "CUIYUW_tab",
|
|
764
|
-
"assetStat": "CUIYUW_assetStat",
|
|
765
742
|
"panelBody": "CUIYUW_panelBody",
|
|
766
|
-
"
|
|
767
|
-
"
|
|
768
|
-
"
|
|
769
|
-
"
|
|
770
|
-
"
|
|
771
|
-
"toolSteps": "CUIYUW_toolSteps",
|
|
772
|
-
"dashJourneyStages": "CUIYUW_dashJourneyStages",
|
|
773
|
-
"createBookTop": "CUIYUW_createBookTop",
|
|
774
|
-
"fileList": "CUIYUW_fileList",
|
|
775
|
-
"bookChipName": "CUIYUW_bookChipName",
|
|
776
|
-
"bookCardName": "CUIYUW_bookCardName",
|
|
777
|
-
"chapterList": "CUIYUW_chapterList",
|
|
778
|
-
"legendNew": "CUIYUW_legendNew",
|
|
743
|
+
"assistantFloat": "CUIYUW_assistantFloat",
|
|
744
|
+
"coverPreview": "CUIYUW_coverPreview",
|
|
745
|
+
"createBookTitle": "CUIYUW_createBookTitle",
|
|
746
|
+
"headerProgressDot": "CUIYUW_headerProgressDot",
|
|
747
|
+
"bookAdd": "CUIYUW_bookAdd",
|
|
779
748
|
"badge": "CUIYUW_badge",
|
|
780
|
-
"
|
|
781
|
-
"bookCardProgressFill": "CUIYUW_bookCardProgressFill",
|
|
782
|
-
"chatBubbleAssistant": "CUIYUW_chatBubbleAssistant",
|
|
783
|
-
"todoText": "CUIYUW_todoText",
|
|
784
|
-
"bigProgressBarFill": "CUIYUW_bigProgressBarFill",
|
|
785
|
-
"dashHeroBook": "CUIYUW_dashHeroBook",
|
|
786
|
-
"dashStageCurrent": "CUIYUW_dashStageCurrent",
|
|
787
|
-
"dashHeroActionTitle": "CUIYUW_dashHeroActionTitle",
|
|
788
|
-
"meta": "CUIYUW_meta",
|
|
789
|
-
"view": "CUIYUW_view",
|
|
790
|
-
"bookChipMeta": "CUIYUW_bookChipMeta",
|
|
791
|
-
"cardTitle": "CUIYUW_cardTitle",
|
|
792
|
-
"navGroupLabel": "CUIYUW_navGroupLabel",
|
|
793
|
-
"navTab": "CUIYUW_navTab",
|
|
794
|
-
"wsColumns": "CUIYUW_wsColumns",
|
|
795
|
-
"navTabBadgeWarn": "CUIYUW_navTabBadgeWarn",
|
|
796
|
-
"navTabBadgeDone": "CUIYUW_navTabBadgeDone",
|
|
797
|
-
"bookAddCard": "CUIYUW_bookAddCard",
|
|
798
|
-
"bookCardBody": "CUIYUW_bookCardBody",
|
|
799
|
-
"volumeGroupToggle": "CUIYUW_volumeGroupToggle",
|
|
800
|
-
"bookCreateCard": "CUIYUW_bookCreateCard",
|
|
801
|
-
"diffTagNew": "CUIYUW_diffTagNew",
|
|
802
|
-
"navTabIcon": "CUIYUW_navTabIcon",
|
|
803
|
-
"chapterTitle": "CUIYUW_chapterTitle",
|
|
804
|
-
"badgeError": "CUIYUW_badgeError",
|
|
805
|
-
"progressLineLive": "CUIYUW_progressLineLive",
|
|
806
|
-
"progressBar": "CUIYUW_progressBar",
|
|
807
|
-
"workflowHint": "CUIYUW_workflowHint",
|
|
808
|
-
"createBookCard": "CUIYUW_createBookCard",
|
|
749
|
+
"dashFact": "CUIYUW_dashFact",
|
|
809
750
|
"shelfGrid": "CUIYUW_shelfGrid",
|
|
810
|
-
"bookCardActive": "CUIYUW_bookCardActive",
|
|
811
|
-
"legendOld": "CUIYUW_legendOld",
|
|
812
|
-
"panelHeader": "CUIYUW_panelHeader",
|
|
813
|
-
"spaceBetween": "CUIYUW_spaceBetween",
|
|
814
|
-
"diffChange": "CUIYUW_diffChange",
|
|
815
|
-
"dashJourney": "CUIYUW_dashJourney",
|
|
816
|
-
"panel": "CUIYUW_panel",
|
|
817
751
|
"toolStepError": "CUIYUW_toolStepError",
|
|
818
|
-
"chapterActions": "CUIYUW_chapterActions",
|
|
819
|
-
"diffSame": "CUIYUW_diffSame",
|
|
820
752
|
"wsEditor": "CUIYUW_wsEditor",
|
|
821
|
-
"
|
|
822
|
-
"
|
|
823
|
-
"
|
|
824
|
-
"
|
|
825
|
-
"dashStageDone": "CUIYUW_dashStageDone",
|
|
826
|
-
"todoWarning": "CUIYUW_todoWarning",
|
|
827
|
-
"dashHeroArrow": "CUIYUW_dashHeroArrow",
|
|
828
|
-
"dashJourneyBar": "CUIYUW_dashJourneyBar",
|
|
829
|
-
"todoInfo": "CUIYUW_todoInfo",
|
|
830
|
-
"bookCard": "CUIYUW_bookCard",
|
|
753
|
+
"panelTitle": "CUIYUW_panelTitle",
|
|
754
|
+
"chatBubbleAssistant": "CUIYUW_chatBubbleAssistant",
|
|
755
|
+
"chapterActions": "CUIYUW_chapterActions",
|
|
756
|
+
"bookCardProgressBar": "CUIYUW_bookCardProgressBar",
|
|
831
757
|
"bookCardBlurb": "CUIYUW_bookCardBlurb",
|
|
758
|
+
"navGroupLabel": "CUIYUW_navGroupLabel",
|
|
759
|
+
"progressLineDone": "CUIYUW_progressLineDone",
|
|
760
|
+
"volumeGroup": "CUIYUW_volumeGroup",
|
|
761
|
+
"assistantStatus": "CUIYUW_assistantStatus",
|
|
762
|
+
"diffLegend": "CUIYUW_diffLegend",
|
|
763
|
+
"diffList": "CUIYUW_diffList",
|
|
764
|
+
"diffText": "CUIYUW_diffText",
|
|
765
|
+
"textarea": "CUIYUW_textarea",
|
|
766
|
+
"workflowHint": "CUIYUW_workflowHint",
|
|
767
|
+
"dashJourneyStages": "CUIYUW_dashJourneyStages",
|
|
768
|
+
"dashGrid": "CUIYUW_dashGrid",
|
|
769
|
+
"progressBarFill": "CUIYUW_progressBarFill",
|
|
770
|
+
"navTabIcon": "CUIYUW_navTabIcon",
|
|
771
|
+
"navAboutUpdate": "CUIYUW_navAboutUpdate",
|
|
772
|
+
"navTabBadgeDanger": "CUIYUW_navTabBadgeDanger",
|
|
773
|
+
"card": "CUIYUW_card",
|
|
774
|
+
"navSpacer": "CUIYUW_navSpacer",
|
|
775
|
+
"busyRow": "CUIYUW_busyRow",
|
|
776
|
+
"navAbout": "CUIYUW_navAbout",
|
|
832
777
|
"iconButton": "CUIYUW_iconButton",
|
|
833
|
-
"
|
|
778
|
+
"fadeIn": "CUIYUW_fadeIn",
|
|
779
|
+
"bookChipRemove": "CUIYUW_bookChipRemove",
|
|
780
|
+
"bookCardProgressFill": "CUIYUW_bookCardProgressFill",
|
|
834
781
|
"createBookIcon": "CUIYUW_createBookIcon",
|
|
782
|
+
"tab": "CUIYUW_tab",
|
|
783
|
+
"badgeWritten": "CUIYUW_badgeWritten",
|
|
784
|
+
"badgeRejected": "CUIYUW_badgeRejected",
|
|
785
|
+
"wsColumn": "CUIYUW_wsColumn",
|
|
786
|
+
"todoText": "CUIYUW_todoText",
|
|
787
|
+
"bookChipActive": "CUIYUW_bookChipActive",
|
|
788
|
+
"navTabBadge": "CUIYUW_navTabBadge",
|
|
789
|
+
"navGroupSep": "CUIYUW_navGroupSep",
|
|
790
|
+
"dashHeroEyebrow": "CUIYUW_dashHeroEyebrow",
|
|
791
|
+
"dashHeroTitle": "CUIYUW_dashHeroTitle",
|
|
792
|
+
"chapterList": "CUIYUW_chapterList",
|
|
793
|
+
"dashStage": "CUIYUW_dashStage",
|
|
794
|
+
"badgePending": "CUIYUW_badgePending",
|
|
795
|
+
"assetStatValue": "CUIYUW_assetStatValue",
|
|
796
|
+
"legendOld": "CUIYUW_legendOld",
|
|
797
|
+
"wsColumns": "CUIYUW_wsColumns",
|
|
798
|
+
"bookCreateOutline": "CUIYUW_bookCreateOutline",
|
|
799
|
+
"entryLabel": "CUIYUW_entryLabel",
|
|
800
|
+
"navTabBadgeDone": "CUIYUW_navTabBadgeDone",
|
|
801
|
+
"navGroup": "CUIYUW_navGroup",
|
|
802
|
+
"chapterBeats": "CUIYUW_chapterBeats",
|
|
803
|
+
"todoWarning": "CUIYUW_todoWarning",
|
|
804
|
+
"assistantResize": "CUIYUW_assistantResize",
|
|
805
|
+
"bookCardCoverFallback": "CUIYUW_bookCardCoverFallback",
|
|
806
|
+
"createBookTop": "CUIYUW_createBookTop",
|
|
807
|
+
"bookCardName": "CUIYUW_bookCardName",
|
|
808
|
+
"dashJourneyFill": "CUIYUW_dashJourneyFill",
|
|
809
|
+
"dashHero": "CUIYUW_dashHero",
|
|
810
|
+
"cardTitle": "CUIYUW_cardTitle",
|
|
811
|
+
"fieldLabel": "CUIYUW_fieldLabel",
|
|
812
|
+
"chapterMain": "CUIYUW_chapterMain",
|
|
813
|
+
"legendNew": "CUIYUW_legendNew",
|
|
814
|
+
"diffNew": "CUIYUW_diffNew",
|
|
815
|
+
"assistantFloatHeader": "CUIYUW_assistantFloatHeader",
|
|
816
|
+
"diffSameBody": "CUIYUW_diffSameBody",
|
|
817
|
+
"toolStepStatus": "CUIYUW_toolStepStatus",
|
|
818
|
+
"bookshelfLabel": "CUIYUW_bookshelfLabel",
|
|
819
|
+
"volumeGroupToggle": "CUIYUW_volumeGroupToggle",
|
|
820
|
+
"toolLive": "CUIYUW_toolLive",
|
|
821
|
+
"bookCreateForm": "CUIYUW_bookCreateForm",
|
|
822
|
+
"bookCardTitleRow": "CUIYUW_bookCardTitleRow",
|
|
823
|
+
"progressLineError": "CUIYUW_progressLineError",
|
|
835
824
|
"workflowList": "CUIYUW_workflowList",
|
|
836
|
-
"
|
|
825
|
+
"dashHeroActionTitle": "CUIYUW_dashHeroActionTitle",
|
|
826
|
+
"dropzoneIcon": "CUIYUW_dropzoneIcon",
|
|
827
|
+
"todoInfo": "CUIYUW_todoInfo",
|
|
828
|
+
"createBookView": "CUIYUW_createBookView",
|
|
829
|
+
"reviewBox": "CUIYUW_reviewBox",
|
|
830
|
+
"tabBar": "CUIYUW_tabBar",
|
|
837
831
|
"row": "CUIYUW_row",
|
|
838
|
-
"
|
|
839
|
-
"
|
|
840
|
-
"
|
|
841
|
-
"
|
|
842
|
-
"
|
|
843
|
-
"
|
|
844
|
-
"
|
|
845
|
-
"
|
|
846
|
-
"
|
|
832
|
+
"outlineReadonly": "CUIYUW_outlineReadonly",
|
|
833
|
+
"fileList": "CUIYUW_fileList",
|
|
834
|
+
"panel": "CUIYUW_panel",
|
|
835
|
+
"panelNavCollapsed": "CUIYUW_panelNavCollapsed",
|
|
836
|
+
"dashFacts": "CUIYUW_dashFacts",
|
|
837
|
+
"coverPlaceholder": "CUIYUW_coverPlaceholder",
|
|
838
|
+
"badgeDone": "CUIYUW_badgeDone",
|
|
839
|
+
"onlyChanges": "CUIYUW_onlyChanges",
|
|
840
|
+
"volumeGroupHeader": "CUIYUW_volumeGroupHeader",
|
|
841
|
+
"chatRole": "CUIYUW_chatRole",
|
|
842
|
+
"progressLine": "CUIYUW_progressLine",
|
|
843
|
+
"progress": "CUIYUW_progress",
|
|
844
|
+
"toolStepIcon": "CUIYUW_toolStepIcon",
|
|
845
|
+
"diffOld": "CUIYUW_diffOld",
|
|
846
|
+
"diffTagNew": "CUIYUW_diffTagNew",
|
|
847
|
+
"shelfView": "CUIYUW_shelfView",
|
|
848
|
+
"diffDel": "CUIYUW_diffDel",
|
|
849
|
+
"navTabBadgeWarn": "CUIYUW_navTabBadgeWarn"
|
|
847
850
|
};
|
|
848
851
|
//#endregion
|
|
849
852
|
//#region src/client/panel/AssistantTab.tsx
|
|
@@ -3344,6 +3347,9 @@ window.__ModuleLoader__.load({
|
|
|
3344
3347
|
label: tt("tab.settings"),
|
|
3345
3348
|
icon: "⚙️"
|
|
3346
3349
|
};
|
|
3350
|
+
const PLUGIN_VERSION = "1.1.1";
|
|
3351
|
+
/** GitHub 仓库地址(关于区块点击跳转)。 */
|
|
3352
|
+
const REPO_URL = "https://github.com/watersxya/dsh-novel-forge";
|
|
3347
3353
|
/** Whether any chapter is being generated right now. */
|
|
3348
3354
|
function anyGenerating(chapters) {
|
|
3349
3355
|
return (chapters ?? []).some((c) => c.status === "generating" || c.status === "reviewing");
|
|
@@ -3649,6 +3655,18 @@ window.__ModuleLoader__.load({
|
|
|
3649
3655
|
const coverFileRef = (0, react.useRef)(null);
|
|
3650
3656
|
/** 章节列表按卷折叠(存已折叠的卷号)。 */
|
|
3651
3657
|
const [collapsedVolumes, setCollapsedVolumes] = (0, react.useState)([]);
|
|
3658
|
+
/** npm 最新版本(更新检测;null = 未检测/检测失败)。 */
|
|
3659
|
+
const [npmLatest, setNpmLatest] = (0, react.useState)(null);
|
|
3660
|
+
/** 后台检测 npm 最新版本(失败静默,不打扰)。 */
|
|
3661
|
+
(0, react.useEffect)(() => {
|
|
3662
|
+
let cancelled = false;
|
|
3663
|
+
fetch("https://registry.npmjs.org/@waterwx%2Fdsh-novel-forge").then((response) => response.json()).then((data) => {
|
|
3664
|
+
if (!cancelled && data["dist-tags"]?.latest !== void 0) setNpmLatest(data["dist-tags"].latest);
|
|
3665
|
+
}).catch(() => {});
|
|
3666
|
+
return () => {
|
|
3667
|
+
cancelled = true;
|
|
3668
|
+
};
|
|
3669
|
+
}, []);
|
|
3652
3670
|
/** AI 助手悬浮窗:是否打开。 */
|
|
3653
3671
|
const [assistantOpen, setAssistantOpen] = (0, react.useState)(false);
|
|
3654
3672
|
/** 悬浮窗位置(相对面板,localStorage 记忆)。 */
|
|
@@ -4158,6 +4176,7 @@ window.__ModuleLoader__.load({
|
|
|
4158
4176
|
setError("");
|
|
4159
4177
|
try {
|
|
4160
4178
|
const result = await api.plan(outlineText || void 0, planCount);
|
|
4179
|
+
let freshCount = 0;
|
|
4161
4180
|
setProject((prev) => {
|
|
4162
4181
|
const base = prev ?? {
|
|
4163
4182
|
bookName: "",
|
|
@@ -4167,13 +4186,18 @@ window.__ModuleLoader__.load({
|
|
|
4167
4186
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4168
4187
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
4169
4188
|
};
|
|
4189
|
+
const existingTitles = new Set(base.chapters.map((c) => c.title));
|
|
4190
|
+
const fresh = result.chapters.filter((c) => !existingTitles.has(c.title));
|
|
4191
|
+
freshCount = fresh.length;
|
|
4192
|
+
if (fresh.length === 0) return base;
|
|
4170
4193
|
return {
|
|
4171
4194
|
...base,
|
|
4172
|
-
chapters: [...base.chapters, ...
|
|
4195
|
+
chapters: [...base.chapters, ...fresh],
|
|
4173
4196
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
4174
4197
|
};
|
|
4175
4198
|
});
|
|
4176
|
-
pushProgress(tt("workflow.planDone", { n:
|
|
4199
|
+
pushProgress(tt("workflow.planDone", { n: freshCount }), "done");
|
|
4200
|
+
if (freshCount < result.chapters.length) pushProgress(`已跳过 ${result.chapters.length - freshCount} 个与已有章节同名的重复章节`, "error");
|
|
4177
4201
|
} catch (err) {
|
|
4178
4202
|
setError(err.message);
|
|
4179
4203
|
pushProgress(`生成章节计划失败:${err.message}`, "error");
|
|
@@ -4993,6 +5017,29 @@ window.__ModuleLoader__.load({
|
|
|
4993
5017
|
className: panel_module_css_default.navTabLabel,
|
|
4994
5018
|
children: SETTINGS_TAB.label
|
|
4995
5019
|
})]
|
|
5020
|
+
}),
|
|
5021
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5022
|
+
className: panel_module_css_default.navAbout,
|
|
5023
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
5024
|
+
type: "button",
|
|
5025
|
+
className: panel_module_css_default.navAboutRow,
|
|
5026
|
+
title: "打开 GitHub 仓库",
|
|
5027
|
+
onClick: () => {
|
|
5028
|
+
window.open(REPO_URL, "_blank", "noopener");
|
|
5029
|
+
},
|
|
5030
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: ["ℹ️ v", PLUGIN_VERSION] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5031
|
+
className: panel_module_css_default.meta,
|
|
5032
|
+
children: "GitHub ↗"
|
|
5033
|
+
})]
|
|
5034
|
+
}), npmLatest !== null && npmLatest !== PLUGIN_VERSION && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
5035
|
+
type: "button",
|
|
5036
|
+
className: panel_module_css_default.navAboutUpdate,
|
|
5037
|
+
title: "查看更新方法",
|
|
5038
|
+
onClick: () => {
|
|
5039
|
+
window.alert(`检测到新版本 v${npmLatest}(当前 v${PLUGIN_VERSION})\n\n更新方式:\n\n【npm 安装】\ncd ~/.dsh/profiles/web && pnpm add @waterwx/dsh-novel-forge@latest\n然后重启 dsh web\n\n【GitHub 安装】\ndsh plugin --profile web add github:watersxya/dsh-novel-forge\n\n【本地开发】\n拉取最新代码 → pnpm install && pnpm build → 重启 dsh web`);
|
|
5040
|
+
},
|
|
5041
|
+
children: ["📦 有新版本 v", npmLatest]
|
|
5042
|
+
})]
|
|
4996
5043
|
})
|
|
4997
5044
|
]
|
|
4998
5045
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|