@jxgame2020/dsh-token-quota 0.1.38 → 0.1.40

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
@@ -7,14 +7,6 @@ window.__ModuleLoader__.load({
7
7
  let _deepseek_ai_dsh_client_store = require("@deepseek-ai/dsh-client-store");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let react = require("react");
10
- //#region lib/types/types.js
11
- /**
12
- * Provider route keys the host knows how to query for account balance. A
13
- * directory provider outside this list renders as "not integrated for query"
14
- * in the balance window.
15
- */
16
- const TOKEN_QUOTA_BALANCE_PROVIDERS = ["deepseek"];
17
- //#endregion
18
10
  //#region lib/types/client/store.js
19
11
  /**
20
12
  * Token-quota panel store: the shared, remount-surviving view state. The
@@ -123,7 +115,7 @@ window.__ModuleLoader__.load({
123
115
  d.musicOnlyCurrentSession = only;
124
116
  },
125
117
  setUpgrade: (d, upgrade) => {
126
- const normalized = upgrade !== null && upgrade.latestVersion !== "" && upgrade.latestVersion !== "0.1.38" ? upgrade : null;
118
+ const normalized = upgrade !== null && upgrade.latestVersion !== "" && upgrade.latestVersion !== "0.1.40" ? upgrade : null;
127
119
  if (d.upgrade === null || d.upgrade.latestVersion !== normalized?.latestVersion) d.upgradeDismissed = false;
128
120
  d.upgrade = normalized;
129
121
  },
@@ -243,7 +235,7 @@ window.__ModuleLoader__.load({
243
235
  }
244
236
  //#endregion
245
237
  //#region \0dsh-css:/Users/jxgame/Desktop/works/deepseek-harness-package/dsh-token-quota/packages/token-quota/src/client/TokenQuotaPanel.module.css.mjs
246
- const css = ".NPLLIq_panel{box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);pointer-events:auto;z-index:40;opacity:1;border-radius:12px;flex-direction:column;width:320px;max-height:min(72vh,560px);transition:opacity .18s;display:flex;position:fixed;top:56px;right:12px;overflow:hidden;box-shadow:0 8px 28px #0000002e}.NPLLIq_panelDim{opacity:.55}.NPLLIq_panelDimStrong{opacity:.3}.NPLLIq_header{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;touch-action:none;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.NPLLIq_header:active{cursor:grabbing}.NPLLIq_headerText{flex-direction:column;gap:2px;min-width:0;display:flex}.NPLLIq_title{color:var(--dsw-alias-label-primary);align-items:baseline;gap:6px;font-size:13px;font-weight:600;display:flex}.NPLLIq_version{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-size:10px;font-weight:500}.NPLLIq_versionNew{color:var(--dsw-alias-status-warning-foreground,#b56900);background:var(--dsw-alias-status-warning-background,#fff6d7);cursor:default;border-radius:4px;padding:1px 6px}.NPLLIq_subtitle{color:var(--dsw-alias-label-secondary);font-size:11px}.NPLLIq_notesBar{background:var(--dsw-alias-bg-layer-2);flex-wrap:wrap;align-items:center;gap:4px;padding:4px 12px 0;display:flex}.NPLLIq_noteChip{width:20px;height:20px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);cursor:pointer;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.NPLLIq_noteChip:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.NPLLIq_noteChipOpen{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteNew{width:22px;height:20px;color:var(--dsw-alias-label-secondary);border:1px dashed var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .12s,border-color .12s;display:inline-flex;position:relative}.NPLLIq_noteNew:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteNew:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_noteNewPlus{color:inherit;font-size:10px;font-weight:700;line-height:1;position:absolute;bottom:-2px;right:-1px}.NPLLIq_noteWin{z-index:60;pointer-events:auto;box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000038}.NPLLIq_noteWinCollapsed{height:auto!important}.NPLLIq_noteWinBar{background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:4px 6px;display:flex}.NPLLIq_noteWinBar:active{cursor:grabbing}.NPLLIq_noteWinGripBar{color:var(--dsw-alias-label-secondary);opacity:.7;flex:none;font-size:10px}.NPLLIq_noteWinTitleText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:1px 2px;font-size:11px;font-weight:600;overflow:hidden}.NPLLIq_noteWinTitle{min-width:0;color:var(--dsw-alias-label-primary);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;flex:1;padding:1px 2px;font-size:11px;font-weight:600}.NPLLIq_noteWinTitle:hover{border-color:var(--dsw-alias-border-l1)}.NPLLIq_noteWinTitle:focus{background:var(--dsw-alias-bg-overlay);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteWinBtn{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_noteWinBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.NPLLIq_noteWinText{box-sizing:border-box;width:100%;min-height:0;color:var(--dsw-alias-label-primary);resize:none;background:0 0;border:none;outline:none;flex:1;padding:6px 8px;font-family:inherit;font-size:11px;line-height:1.5}.NPLLIq_noteWinResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 45%, var(--dsw-alias-border-l2) 45% 55%, transparent 55% 70%, var(--dsw-alias-border-l2) 70% 80%, transparent 80%);width:14px;height:14px;position:absolute;bottom:0;right:0}.NPLLIq_noteMenuBackdrop{z-index:100;pointer-events:auto;position:fixed;inset:0}.NPLLIq_noteMenu{z-index:101;pointer-events:auto;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;min-width:96px;padding:4px;display:flex;position:fixed;box-shadow:0 8px 24px #0000003d}.NPLLIq_noteMenuItem{text-align:left;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 8px;font-size:11px}.NPLLIq_noteMenuItem:hover{background:var(--dsw-alias-bg-layer-2)}.NPLLIq_collapse{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:2px 6px;font-size:11px}.NPLLIq_collapse:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_body{padding:4px 0;overflow-y:auto}.NPLLIq_row{border-bottom:1px solid var(--dsw-alias-border-l1);flex-direction:column;gap:6px;padding:8px 12px;display:flex}.NPLLIq_rowHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.NPLLIq_rowDrag{cursor:grab;color:var(--dsw-alias-label-secondary);user-select:none;border-radius:4px;flex:none;margin-right:2px;padding:2px 3px;font-size:11px;line-height:1}.NPLLIq_rowDrag:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_rowDrag:active{cursor:grabbing}.NPLLIq_rowDragging{opacity:.45}.NPLLIq_rowDropTarget{box-shadow:inset 0 2px 0 var(--dsw-alias-brand-primary)}.NPLLIq_rowName{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex;overflow:hidden}.NPLLIq_currentBadge{color:var(--dsw-alias-state-success-primary);border:1px solid var(--dsw-alias-state-success-primary);border-radius:8px;flex:none;padding:1px 6px;font-size:10px}.NPLLIq_rowMeta{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.NPLLIq_bar{background:var(--dsw-alias-bg-layer-1);border-radius:3px;height:6px;overflow:hidden}.NPLLIq_fillIdle{background:var(--dsw-alias-brand-primary);height:100%;transition:width .2s}.NPLLIq_fillWarn{background:var(--dsw-alias-state-warn-primary);height:100%;transition:width .2s}.NPLLIq_fillOver{background:var(--dsw-alias-state-error-primary);height:100%;transition:width .2s}.NPLLIq_controls{align-items:center;gap:6px;display:flex}.NPLLIq_input{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-primary);border-radius:6px;flex:1;padding:4px 8px;font-size:11px}.NPLLIq_input::placeholder{color:var(--dsw-alias-label-secondary)}.NPLLIq_save,.NPLLIq_switch{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;flex:none;padding:4px 10px;font-size:11px}.NPLLIq_save:hover,.NPLLIq_switch:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2)}.NPLLIq_switch:disabled{opacity:.5;cursor:default}.NPLLIq_balanceToggle{margin-left:auto}.NPLLIq_balanceToggleOpen{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceWin{z-index:1199;background:var(--dsw-alias-bg-layer-2);width:280px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);pointer-events:auto;border-radius:12px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000029}.NPLLIq_balanceWinHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);user-select:none;align-items:center;gap:6px;padding:6px 8px 6px 12px;display:flex}.NPLLIq_balanceWinTitle{flex:1;font-size:12px;font-weight:600;line-height:1}.NPLLIq_balanceWinBody{font-variant-numeric:tabular-nums;padding:6px 10px 10px;font-size:11px}.NPLLIq_balanceRowHeader{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);grid-template-columns:1fr auto 20px;align-items:center;gap:6px;padding:3px 2px;font-weight:600;display:grid}.NPLLIq_balanceSortBtn{all:unset;cursor:pointer;color:inherit;border-radius:4px;padding:1px 2px;font-size:10px;font-weight:600}.NPLLIq_balanceSortBtn:hover{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRefreshAll{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceRefreshAll:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRefreshAll:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_balanceRow{grid-template-columns:1fr auto 20px;align-items:center;gap:6px;padding:3px 2px;display:grid}.NPLLIq_balanceRow+.NPLLIq_balanceRow{border-top:1px dashed var(--dsw-alias-border-l1)}.NPLLIq_balanceRowName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.NPLLIq_balanceRowValue{text-align:right;font-weight:600}.NPLLIq_balanceRowRefresh{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceRowRefresh:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRowRefresh:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_balanceValueOk{color:var(--dsw-alias-label-primary)}.NPLLIq_balanceValueLow{color:var(--dsw-alias-state-warn-primary)}.NPLLIq_balanceValueError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_balanceStateHint{color:var(--dsw-alias-label-secondary);font-style:italic;font-weight:500}.NPLLIq_balanceStateError{color:var(--dsw-alias-state-error-primary);font-weight:500}.NPLLIq_balanceLastLine{border-top:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);margin-top:6px;padding-top:5px;font-size:10px}.NPLLIq_balanceBar{color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:6px;padding:5px 12px;font-size:11px;display:flex}.NPLLIq_balanceBarText{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:600;display:inline-flex;overflow:hidden}.NPLLIq_balanceBarBadge{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border-radius:4px;flex:none;padding:0 4px;font-size:10px;font-weight:600}.NPLLIq_balanceBarDim{color:var(--dsw-alias-label-secondary);font-weight:500}.NPLLIq_balanceBarLow{color:var(--dsw-alias-state-warn-primary)}.NPLLIq_balanceBarError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_balanceBarRefresh{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceBarRefresh:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceBarRefresh:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_notice,.NPLLIq_noticeError{color:var(--dsw-alias-label-secondary);padding:10px 12px;font-size:12px}.NPLLIq_noticeError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_tab{background:var(--dsw-alias-brand-primary);border:1px solid var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-overlay);pointer-events:auto;cursor:pointer;z-index:90;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;font-size:12px;font-weight:600;display:inline-flex;position:fixed;top:56px;right:12px;box-shadow:0 6px 20px #00000040}.NPLLIq_tab:hover{filter:brightness(1.08)}.NPLLIq_tabIcon{font-size:12px;line-height:1}.NPLLIq_tabLabel{white-space:nowrap}.NPLLIq_headerActions{flex:none;align-items:center;gap:4px;display:flex}.NPLLIq_settingsBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:2px 6px;font-size:11px}.NPLLIq_settingsBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_settingsBtnActive{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2,#0000000f);box-shadow:inset 0 0 0 1px var(--dsw-alias-brand-primary);font-weight:700}.NPLLIq_selectBtn{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:1px 6px;font-size:10px}.NPLLIq_selectBtn:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_gearBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;margin-left:6px;padding:0 2px;font-size:12px;line-height:1}.NPLLIq_gearBtn:hover{color:var(--dsw-alias-label-primary)}.NPLLIq_fullNotice{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-state-error-primary);border-radius:8px;margin:6px 12px;padding:8px 10px;font-size:12px}.NPLLIq_upgradeBanner{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-divider-1,#0000001a);border-radius:8px;margin:6px 12px;padding:10px 30px 10px 10px;font-size:12px;position:relative}@keyframes NPLLIq_upgradeBannerFlash{0%,to{border-color:var(--dsw-alias-divider-1,#0000001a);box-shadow:0 0 #f0a02000}50%{border-color:var(--dsw-alias-status-warning-foreground,#b56900);box-shadow:0 0 0 5px #f0a02073}}.NPLLIq_upgradeBannerFlash{border-color:var(--dsw-alias-status-warning-foreground,#b56900);animation:.6s ease-in-out 4 NPLLIq_upgradeBannerFlash}.NPLLIq_upgradeBannerText{margin-bottom:6px;font-weight:600}.NPLLIq_upgradeCommands{flex-direction:column;gap:4px;display:flex}.NPLLIq_upgradeCommandRow{align-items:center;gap:6px;display:flex}.NPLLIq_upgradeCommand{background:var(--dsw-alias-bg-layer-2,#0000000a);white-space:nowrap;border-radius:4px;flex:1;min-width:0;padding:4px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;overflow-x:auto}.NPLLIq_copyBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;flex:none;padding:3px 8px;font-size:11px;transition:transform 80ms,background .12s,color .12s}.NPLLIq_copyBtn:hover{background:var(--dsw-alias-bg-layer-3,#00000014)}.NPLLIq_copyBtn:active{transform:scale(.92)}.NPLLIq_copyBtnDone{background:var(--dsw-alias-status-success-background,#14963c1f);border-color:var(--dsw-alias-status-success-foreground,#0a7d32);color:var(--dsw-alias-status-success-foreground,#0a7d32);font-weight:600}.NPLLIq_upgradeHint{color:var(--dsw-alias-label-secondary);margin-top:6px;font-size:11px}.NPLLIq_upgradeClose{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:16px;line-height:1;position:absolute;top:4px;right:6px}.NPLLIq_upgradeClose:hover{background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary)}.NPLLIq_checkUpdatesRow{justify-content:space-between;align-items:center;gap:12px;display:flex}.NPLLIq_checkUpdatesLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.NPLLIq_checkUpdatesLabel input{margin:0}.NPLLIq_checkUpdatesLabel input[type=range]{min-width:90px;accent-color:var(--dsw-alias-brand-primary);flex:1}.NPLLIq_checkUpdatesLabel select{background:var(--dsw-alias-bg-layer-2,#0000000a);min-width:90px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-divider-1,#00000026);border-radius:4px;flex:1;padding:2px 4px;font-size:12px}.NPLLIq_checkBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;white-space:nowrap;text-align:center;border-radius:4px;flex:none;min-width:72px;padding:4px 10px;font-size:12px}.NPLLIq_checkBtn:hover:not(:disabled){background:var(--dsw-alias-bg-layer-3,#00000014)}.NPLLIq_checkBtn:disabled{opacity:.6;cursor:default}.NPLLIq_checkErrorHint{color:var(--dsw-alias-state-error-primary,#c00);background:var(--dsw-alias-state-error-background,#ff00000f);border:1px solid var(--dsw-alias-state-error-border,#b4000040);word-break:break-all;border-radius:6px;margin-top:8px;padding:6px 8px;font-size:11px;line-height:1.4}.NPLLIq_dialog{z-index:100;pointer-events:auto;box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;gap:12px;width:430px;max-width:94vw;max-height:80vh;padding:14px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 8px 28px #00000040}.NPLLIq_dialogTabs{border-bottom:1px solid var(--dsw-alias-divider-1,#00000014);gap:2px;margin:-6px -14px 0;padding:0 14px;display:flex}.NPLLIq_dialogTab{appearance:none;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px 8px;font-size:12px}.NPLLIq_dialogTab:hover{color:var(--dsw-alias-label-primary)}.NPLLIq_dialogTabActive{color:var(--dsw-alias-brand-primary);border-bottom-color:var(--dsw-alias-brand-primary);font-weight:600}.NPLLIq_settingsDialog{height:min(560px,80vh)}.NPLLIq_dialogTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600}.NPLLIq_dialogSection{flex-direction:column;gap:6px;display:flex}.NPLLIq_dialogLabel{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:500}.NPLLIq_monitorHint{color:var(--dsw-alias-label-secondary);font-size:11px}.NPLLIq_dialogHint{color:var(--dsw-alias-label-secondary);margin-top:4px;font-size:11px;line-height:1.4}.NPLLIq_monitorList{flex-direction:column;gap:2px;max-height:180px;display:flex;overflow-y:auto}.NPLLIq_monitorRow{color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:flex}.NPLLIq_monitorRow:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_monitorName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.NPLLIq_radioRow{color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:3px 4px;font-size:12px;display:flex}.NPLLIq_radioRow:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_dialogActions{justify-content:flex-end;gap:6px;display:flex}.NPLLIq_dialogBtn,.NPLLIq_dialogBtnPrimary{border:1px solid var(--dsw-alias-border-l1);cursor:pointer;border-radius:6px;padding:4px 12px;font-size:11px}.NPLLIq_dialogBtn{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.NPLLIq_dialogBtnPrimary{background:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-overlay)}.NPLLIq_dialogHeader{z-index:2;background:var(--dsw-alias-bg-overlay);cursor:grab;user-select:none;touch-action:none;justify-content:space-between;align-items:center;gap:8px;margin:-14px -14px 0;padding:14px 14px 8px;display:flex;position:sticky;top:-14px}.NPLLIq_dialogHeader:active{cursor:grabbing}.NPLLIq_dialogClose{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.NPLLIq_dialogClose:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_resetRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.NPLLIq_resetSelect{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);border-radius:6px;padding:3px 6px;font-size:12px}.NPLLIq_logTable{border-collapse:collapse;width:100%;font-size:11px}.NPLLIq_logTable th{text-align:left;color:var(--dsw-alias-label-secondary);border-bottom:1px solid var(--dsw-alias-border-l1);padding:4px 6px;font-weight:500}.NPLLIq_logTable td{color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);font-variant-numeric:tabular-nums;padding:4px 6px}.NPLLIq_logDayCol{white-space:nowrap;color:var(--dsw-alias-label-secondary)}.NPLLIq_logModelCol{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.NPLLIq_logUsedCol{text-align:right}.NPLLIq_logDialog{gap:0;width:380px;max-height:min(72vh,480px);padding:0}.NPLLIq_logHeader{background:var(--dsw-alias-bg-overlay);cursor:grab;user-select:none;touch-action:none;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:14px 14px 8px;display:flex}.NPLLIq_logHeader:active{cursor:grabbing}.NPLLIq_logScroll{flex:1;min-height:0;padding:0 14px 14px;overflow:auto}.NPLLIq_logToolbar{flex:1;align-items:center;gap:6px;display:flex}.NPLLIq_logSearch{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);min-width:0;color:var(--dsw-alias-label-primary);border-radius:4px;flex:1;padding:3px 6px;font-size:11px}.NPLLIq_logSearch:focus{border-color:var(--dsw-alias-accent-1,#4a9eff);outline:none}.NPLLIq_logClearBtn{border:1px solid var(--dsw-alias-state-error-border,#b400004d);color:var(--dsw-alias-state-error-primary,#c00);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;flex:none;padding:3px 8px;font-size:11px}.NPLLIq_logClearBtn:hover{background:var(--dsw-alias-state-error-background,#ff00000f)}.NPLLIq_logPager{border-top:1px solid var(--dsw-alias-divider-1,#00000014);background:var(--dsw-alias-bg-overlay);color:var(--dsw-alias-label-secondary);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px;font-size:11px;display:flex}.NPLLIq_logPagerInfo{white-space:nowrap}.NPLLIq_logPagerControls{align-items:center;gap:4px;display:flex}.NPLLIq_logPagerBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);width:24px;height:24px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;font-size:13px;line-height:1}.NPLLIq_logPagerBtn:disabled{opacity:.4;cursor:default}.NPLLIq_logPagerPages{text-align:center;min-width:50px;color:var(--dsw-alias-label-secondary)}.NPLLIq_logPageSizeSelect{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;padding:2px 4px;font-size:11px}.NPLLIq_dialogOverlay{z-index:100001;pointer-events:auto;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.NPLLIq_logClearDialog{gap:0;width:320px;padding:16px}.NPLLIq_dialogBody{color:var(--dsw-alias-label-secondary);margin:6px 0 10px;font-size:12px;line-height:1.5}.NPLLIq_logClearDate{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);width:100%;color:var(--dsw-alias-label-primary);border-radius:6px;margin-bottom:12px;padding:6px 8px;font-size:13px}.NPLLIq_logClearDate:focus{border-color:var(--dsw-alias-accent-1,#4a9eff);outline:none}";
238
+ const css = ".NPLLIq_panel{box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);pointer-events:auto;z-index:40;opacity:1;border-radius:12px;flex-direction:column;width:320px;max-height:min(72vh,560px);transition:opacity .18s;display:flex;position:fixed;top:56px;right:12px;overflow:hidden;box-shadow:0 8px 28px #0000002e}.NPLLIq_panelDim{opacity:.55}.NPLLIq_panelDimStrong{opacity:.3}.NPLLIq_header{border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;touch-action:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.NPLLIq_header:active{cursor:grabbing}.NPLLIq_headerText{flex-direction:column;gap:2px;min-width:0;display:flex}.NPLLIq_title{color:var(--dsw-alias-label-primary);align-items:baseline;gap:6px;font-size:13px;font-weight:600;display:flex}.NPLLIq_version{color:var(--dsw-alias-label-secondary);white-space:nowrap;font-size:10px;font-weight:500}.NPLLIq_versionNew{color:var(--dsw-alias-status-warning-foreground,#b56900);background:var(--dsw-alias-status-warning-background,#fff6d7);cursor:default;border-radius:4px;padding:1px 6px}.NPLLIq_subtitle{color:var(--dsw-alias-label-secondary);font-size:11px}.NPLLIq_notesBar{flex-wrap:wrap;flex:100%;align-items:center;gap:4px;padding:2px 0 0;display:flex}.NPLLIq_noteChip{width:20px;height:20px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);cursor:pointer;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.NPLLIq_noteChip:hover{color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.NPLLIq_noteChipOpen{color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteNew{width:22px;height:20px;color:var(--dsw-alias-label-secondary);border:1px dashed var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:5px;flex:none;justify-content:center;align-items:center;padding:0;transition:color .12s,border-color .12s;display:inline-flex;position:relative}.NPLLIq_noteNew:hover:not(:disabled){color:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteNew:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_noteNewPlus{color:inherit;font-size:10px;font-weight:700;line-height:1;position:absolute;bottom:-2px;right:-1px}.NPLLIq_noteWin{z-index:60;pointer-events:auto;box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:10px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000038}.NPLLIq_noteWinCollapsed{height:auto!important}.NPLLIq_noteWinBar{background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:4px 6px;display:flex}.NPLLIq_noteWinBar:active{cursor:grabbing}.NPLLIq_noteWinGripBar{color:var(--dsw-alias-label-secondary);opacity:.7;flex:none;font-size:10px}.NPLLIq_noteWinTitleText{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;padding:1px 2px;font-size:11px;font-weight:600;overflow:hidden}.NPLLIq_noteWinTitle{min-width:0;color:var(--dsw-alias-label-primary);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;flex:1;padding:1px 2px;font-size:11px;font-weight:600}.NPLLIq_noteWinTitle:hover{border-color:var(--dsw-alias-border-l1)}.NPLLIq_noteWinTitle:focus{background:var(--dsw-alias-bg-overlay);border-color:var(--dsw-alias-brand-primary)}.NPLLIq_noteWinBtn{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_noteWinBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2)}.NPLLIq_noteWinText{box-sizing:border-box;width:100%;min-height:0;color:var(--dsw-alias-label-primary);resize:none;background:0 0;border:none;outline:none;flex:1;padding:6px 8px;font-family:inherit;font-size:11px;line-height:1.5}.NPLLIq_noteWinResize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 45%, var(--dsw-alias-border-l2) 45% 55%, transparent 55% 70%, var(--dsw-alias-border-l2) 70% 80%, transparent 80%);width:14px;height:14px;position:absolute;bottom:0;right:0}.NPLLIq_noteMenuBackdrop{z-index:100;pointer-events:auto;position:fixed;inset:0}.NPLLIq_noteMenu{z-index:101;pointer-events:auto;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex-direction:column;min-width:96px;padding:4px;display:flex;position:fixed;box-shadow:0 8px 24px #0000003d}.NPLLIq_noteMenuItem{text-align:left;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 8px;font-size:11px}.NPLLIq_noteMenuItem:hover{background:var(--dsw-alias-bg-layer-2)}.NPLLIq_collapse{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:2px 6px;font-size:11px}.NPLLIq_collapse:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_body{padding:4px 0;overflow-y:auto}.NPLLIq_row{border-bottom:1px solid var(--dsw-alias-border-l1);flex-direction:column;gap:6px;padding:8px 12px;display:flex}.NPLLIq_rowHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.NPLLIq_rowDrag{cursor:grab;color:var(--dsw-alias-label-secondary);user-select:none;border-radius:4px;flex:none;margin-right:2px;padding:2px 3px;font-size:11px;line-height:1}.NPLLIq_rowDrag:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_rowDrag:active{cursor:grabbing}.NPLLIq_rowDragging{opacity:.45}.NPLLIq_rowDropTarget{box-shadow:inset 0 2px 0 var(--dsw-alias-brand-primary)}.NPLLIq_rowName{min-width:0;color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex;overflow:hidden}.NPLLIq_currentBadge{color:var(--dsw-alias-state-success-primary);border:1px solid var(--dsw-alias-state-success-primary);border-radius:8px;flex:none;padding:1px 6px;font-size:10px}.NPLLIq_rowMeta{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.NPLLIq_bar{background:var(--dsw-alias-bg-layer-1);border-radius:3px;height:6px;overflow:hidden}.NPLLIq_fillIdle{background:var(--dsw-alias-brand-primary);height:100%;transition:width .2s}.NPLLIq_fillWarn{background:var(--dsw-alias-state-warn-primary);height:100%;transition:width .2s}.NPLLIq_fillOver{background:var(--dsw-alias-state-error-primary);height:100%;transition:width .2s}.NPLLIq_controls{align-items:center;gap:6px;display:flex}.NPLLIq_input{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-primary);border-radius:6px;flex:1;padding:4px 8px;font-size:11px}.NPLLIq_input::placeholder{color:var(--dsw-alias-label-secondary)}.NPLLIq_save,.NPLLIq_switch{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;flex:none;padding:4px 10px;font-size:11px}.NPLLIq_save:hover,.NPLLIq_switch:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2)}.NPLLIq_switch:disabled{opacity:.5;cursor:default}.NPLLIq_balanceToggle{margin-left:auto}.NPLLIq_balanceToggleOpen{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceWin{z-index:1199;background:var(--dsw-alias-bg-layer-2);width:280px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l1);pointer-events:auto;border-radius:12px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000029}.NPLLIq_balanceWinHeader{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-3);user-select:none;align-items:center;gap:6px;padding:6px 8px 6px 12px;display:flex}.NPLLIq_balanceWinTitle{flex:1;font-size:12px;font-weight:600;line-height:1}.NPLLIq_balanceWinBody{font-variant-numeric:tabular-nums;padding:6px 10px 10px;font-size:11px}.NPLLIq_balanceRowHeader{border-bottom:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary);grid-template-columns:1fr auto 20px;align-items:center;gap:6px;padding:3px 2px;font-weight:600;display:grid}.NPLLIq_balanceSortBtn{all:unset;cursor:pointer;color:inherit;border-radius:4px;padding:1px 2px;font-size:10px;font-weight:600}.NPLLIq_balanceSortBtn:hover{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRefreshAll{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceRefreshAll:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRefreshAll:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_balanceRow{grid-template-columns:1fr auto 20px;align-items:center;gap:6px;padding:3px 2px;display:grid}.NPLLIq_balanceRow+.NPLLIq_balanceRow{border-top:1px dashed var(--dsw-alias-border-l1)}.NPLLIq_balanceRowName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.NPLLIq_balanceRowValue{text-align:right;font-weight:600}.NPLLIq_balanceRowRefresh{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceRowRefresh:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceRowRefresh:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_balanceValueOk{color:var(--dsw-alias-label-primary)}.NPLLIq_balanceValueLow{color:var(--dsw-alias-state-warn-primary)}.NPLLIq_balanceValueError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_balanceStateHint{color:var(--dsw-alias-label-secondary);font-style:italic;font-weight:500}.NPLLIq_balanceStateError{color:var(--dsw-alias-state-error-primary);font-weight:500}.NPLLIq_balanceLastLine{border-top:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);margin-top:6px;padding-top:5px;font-size:10px}.NPLLIq_balanceBar{color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:6px;padding:5px 12px;font-size:11px;display:flex}.NPLLIq_balanceBarText{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;font-weight:600;display:inline-flex;overflow:hidden}.NPLLIq_balanceBarBadge{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border-radius:4px;flex:none;padding:0 4px;font-size:10px;font-weight:600}.NPLLIq_balanceBarDim{color:var(--dsw-alias-label-secondary);font-weight:500}.NPLLIq_balanceBarLow{color:var(--dsw-alias-state-warn-primary)}.NPLLIq_balanceBarError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_balanceBarRefresh{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.NPLLIq_balanceBarRefresh:hover:not(:disabled){color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_balanceBarRefresh:disabled{opacity:.4;cursor:not-allowed}.NPLLIq_notice,.NPLLIq_noticeError{color:var(--dsw-alias-label-secondary);padding:10px 12px;font-size:12px}.NPLLIq_noticeError{color:var(--dsw-alias-state-error-primary)}.NPLLIq_tab{background:var(--dsw-alias-brand-primary);border:1px solid var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-overlay);pointer-events:auto;cursor:pointer;z-index:90;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;font-size:12px;font-weight:600;display:inline-flex;position:fixed;top:56px;right:12px;box-shadow:0 6px 20px #00000040}.NPLLIq_tab:hover{filter:brightness(1.08)}.NPLLIq_tabIcon{font-size:12px;line-height:1}.NPLLIq_tabLabel{white-space:nowrap}.NPLLIq_headerActions{flex:none;align-items:center;gap:4px;display:flex}.NPLLIq_settingsBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:2px 6px;font-size:11px}.NPLLIq_settingsBtn:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_settingsBtnActive{color:var(--dsw-alias-brand-primary);background:var(--dsw-alias-bg-layer-2,#0000000f);box-shadow:inset 0 0 0 1px var(--dsw-alias-brand-primary);font-weight:700}.NPLLIq_selectBtn{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:1px 6px;font-size:10px}.NPLLIq_selectBtn:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_gearBtn{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;flex:none;margin-left:6px;padding:0 2px;font-size:12px;line-height:1}.NPLLIq_gearBtn:hover{color:var(--dsw-alias-label-primary)}.NPLLIq_fullNotice{color:var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-state-error-primary);border-radius:8px;margin:6px 12px;padding:8px 10px;font-size:12px}.NPLLIq_upgradeBanner{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-divider-1,#0000001a);border-radius:8px;margin:6px 12px;padding:10px 30px 10px 10px;font-size:12px;position:relative}@keyframes NPLLIq_upgradeBannerFlash{0%,to{border-color:var(--dsw-alias-divider-1,#0000001a);box-shadow:0 0 #f0a02000}50%{border-color:var(--dsw-alias-status-warning-foreground,#b56900);box-shadow:0 0 0 5px #f0a02073}}.NPLLIq_upgradeBannerFlash{border-color:var(--dsw-alias-status-warning-foreground,#b56900);animation:.6s ease-in-out 4 NPLLIq_upgradeBannerFlash}.NPLLIq_upgradeBannerText{margin-bottom:6px;font-weight:600}.NPLLIq_upgradeCommands{flex-direction:column;gap:4px;display:flex}.NPLLIq_upgradeCommandRow{align-items:center;gap:6px;display:flex}.NPLLIq_upgradeCommand{background:var(--dsw-alias-bg-layer-2,#0000000a);white-space:nowrap;border-radius:4px;flex:1;min-width:0;padding:4px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;overflow-x:auto}.NPLLIq_copyBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;flex:none;padding:3px 8px;font-size:11px;transition:transform 80ms,background .12s,color .12s}.NPLLIq_copyBtn:hover{background:var(--dsw-alias-bg-layer-3,#00000014)}.NPLLIq_copyBtn:active{transform:scale(.92)}.NPLLIq_copyBtnDone{background:var(--dsw-alias-status-success-background,#14963c1f);border-color:var(--dsw-alias-status-success-foreground,#0a7d32);color:var(--dsw-alias-status-success-foreground,#0a7d32);font-weight:600}.NPLLIq_upgradeHint{color:var(--dsw-alias-label-secondary);margin-top:6px;font-size:11px}.NPLLIq_upgradeClose{width:20px;height:20px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;font-size:16px;line-height:1;position:absolute;top:4px;right:6px}.NPLLIq_upgradeClose:hover{background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary)}.NPLLIq_checkUpdatesRow{justify-content:space-between;align-items:center;gap:12px;display:flex}.NPLLIq_checkUpdatesLabel{color:var(--dsw-alias-label-primary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.NPLLIq_checkUpdatesLabel input{margin:0}.NPLLIq_checkUpdatesLabel input[type=range]{min-width:90px;accent-color:var(--dsw-alias-brand-primary);flex:1}.NPLLIq_checkUpdatesLabel select{background:var(--dsw-alias-bg-layer-2,#0000000a);min-width:90px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-divider-1,#00000026);border-radius:4px;flex:1;padding:2px 4px;font-size:12px}.NPLLIq_checkBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-2,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;white-space:nowrap;text-align:center;border-radius:4px;flex:none;min-width:72px;padding:4px 10px;font-size:12px}.NPLLIq_checkBtn:hover:not(:disabled){background:var(--dsw-alias-bg-layer-3,#00000014)}.NPLLIq_checkBtn:disabled{opacity:.6;cursor:default}.NPLLIq_checkErrorHint{color:var(--dsw-alias-state-error-primary,#c00);background:var(--dsw-alias-state-error-background,#ff00000f);border:1px solid var(--dsw-alias-state-error-border,#b4000040);word-break:break-all;border-radius:6px;margin-top:8px;padding:6px 8px;font-size:11px;line-height:1.4}.NPLLIq_dialog{z-index:100;pointer-events:auto;box-sizing:border-box;background:var(--dsw-alias-bg-overlay);border:1px solid var(--dsw-alias-border-l1);border-radius:12px;flex-direction:column;gap:12px;width:430px;max-width:94vw;max-height:80vh;padding:14px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 8px 28px #00000040}.NPLLIq_dialogTabs{border-bottom:1px solid var(--dsw-alias-divider-1,#00000014);gap:2px;margin:-6px -14px 0;padding:0 14px;display:flex}.NPLLIq_dialogTab{appearance:none;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px 8px;font-size:12px}.NPLLIq_dialogTab:hover{color:var(--dsw-alias-label-primary)}.NPLLIq_dialogTabActive{color:var(--dsw-alias-brand-primary);border-bottom-color:var(--dsw-alias-brand-primary);font-weight:600}.NPLLIq_settingsDialog{height:min(560px,80vh)}.NPLLIq_dialogTitle{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600}.NPLLIq_dialogSection{flex-direction:column;gap:6px;display:flex}.NPLLIq_dialogLabel{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:500}.NPLLIq_monitorHint{color:var(--dsw-alias-label-secondary);font-size:11px}.NPLLIq_dialogHint{color:var(--dsw-alias-label-secondary);margin-top:4px;font-size:11px;line-height:1.4}.NPLLIq_monitorList{flex-direction:column;gap:2px;max-height:180px;display:flex;overflow-y:auto}.NPLLIq_monitorRow{color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:flex}.NPLLIq_monitorRow:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_monitorName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.NPLLIq_radioRow{color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:3px 4px;font-size:12px;display:flex}.NPLLIq_radioRow:hover{background:var(--dsw-alias-bg-layer-1)}.NPLLIq_dialogActions{justify-content:flex-end;gap:6px;display:flex}.NPLLIq_dialogBtn,.NPLLIq_dialogBtnPrimary{border:1px solid var(--dsw-alias-border-l1);cursor:pointer;border-radius:6px;padding:4px 12px;font-size:11px}.NPLLIq_dialogBtn{background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary)}.NPLLIq_dialogBtnPrimary{background:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-bg-overlay)}.NPLLIq_dialogHeader{z-index:2;background:var(--dsw-alias-bg-overlay);cursor:grab;user-select:none;touch-action:none;justify-content:space-between;align-items:center;gap:8px;margin:-14px -14px 0;padding:14px 14px 8px;display:flex;position:sticky;top:-14px}.NPLLIq_dialogHeader:active{cursor:grabbing}.NPLLIq_dialogClose{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:18px;line-height:1;display:flex}.NPLLIq_dialogClose:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1)}.NPLLIq_resetRow{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.NPLLIq_resetSelect{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);border-radius:6px;padding:3px 6px;font-size:12px}.NPLLIq_logTable{border-collapse:collapse;width:100%;font-size:11px}.NPLLIq_logTable th{text-align:left;color:var(--dsw-alias-label-secondary);border-bottom:1px solid var(--dsw-alias-border-l1);padding:4px 6px;font-weight:500}.NPLLIq_logTable td{color:var(--dsw-alias-label-primary);border-bottom:1px solid var(--dsw-alias-border-l1);font-variant-numeric:tabular-nums;padding:4px 6px}.NPLLIq_logDayCol{white-space:nowrap;color:var(--dsw-alias-label-secondary)}.NPLLIq_logModelCol{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.NPLLIq_logUsedCol{text-align:right}.NPLLIq_logDialog{gap:0;width:380px;max-height:min(72vh,480px);padding:0}.NPLLIq_logHeader{background:var(--dsw-alias-bg-overlay);cursor:grab;user-select:none;touch-action:none;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:14px 14px 8px;display:flex}.NPLLIq_logHeader:active{cursor:grabbing}.NPLLIq_logScroll{flex:1;min-height:0;padding:0 14px 14px;overflow:auto}.NPLLIq_logToolbar{flex:1;align-items:center;gap:6px;display:flex}.NPLLIq_logSearch{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);min-width:0;color:var(--dsw-alias-label-primary);border-radius:4px;flex:1;padding:3px 6px;font-size:11px}.NPLLIq_logSearch:focus{border-color:var(--dsw-alias-accent-1,#4a9eff);outline:none}.NPLLIq_logClearBtn{border:1px solid var(--dsw-alias-state-error-border,#b400004d);color:var(--dsw-alias-state-error-primary,#c00);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;flex:none;padding:3px 8px;font-size:11px}.NPLLIq_logClearBtn:hover{background:var(--dsw-alias-state-error-background,#ff00000f)}.NPLLIq_logPager{border-top:1px solid var(--dsw-alias-divider-1,#00000014);background:var(--dsw-alias-bg-overlay);color:var(--dsw-alias-label-secondary);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 14px;font-size:11px;display:flex}.NPLLIq_logPagerInfo{white-space:nowrap}.NPLLIq_logPagerControls{align-items:center;gap:4px;display:flex}.NPLLIq_logPagerBtn{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);width:24px;height:24px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;font-size:13px;line-height:1}.NPLLIq_logPagerBtn:disabled{opacity:.4;cursor:default}.NPLLIq_logPagerPages{text-align:center;min-width:50px;color:var(--dsw-alias-label-secondary)}.NPLLIq_logPageSizeSelect{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:4px;padding:2px 4px;font-size:11px}.NPLLIq_dialogOverlay{z-index:100001;pointer-events:auto;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.NPLLIq_logClearDialog{gap:0;width:320px;padding:16px}.NPLLIq_dialogBody{color:var(--dsw-alias-label-secondary);margin:6px 0 10px;font-size:12px;line-height:1.5}.NPLLIq_logClearDate{border:1px solid var(--dsw-alias-divider-1,#00000026);background:var(--dsw-alias-bg-layer-1,#0000000a);width:100%;color:var(--dsw-alias-label-primary);border-radius:6px;margin-bottom:12px;padding:6px 8px;font-size:13px}.NPLLIq_logClearDate:focus{border-color:var(--dsw-alias-accent-1,#4a9eff);outline:none}";
247
239
  const tagId = "@jxgame2020/dsh-token-quota/TokenQuotaPanel.module.css";
248
240
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
249
241
  const tag = document.createElement("style");
@@ -253,142 +245,142 @@ window.__ModuleLoader__.load({
253
245
  document.head.appendChild(tag);
254
246
  }
255
247
  var TokenQuotaPanel_module_css_default = {
248
+ "noteWinResize": "NPLLIq_noteWinResize",
249
+ "dialogClose": "NPLLIq_dialogClose",
250
+ "balanceStateHint": "NPLLIq_balanceStateHint",
251
+ "panel": "NPLLIq_panel",
252
+ "noteMenuBackdrop": "NPLLIq_noteMenuBackdrop",
256
253
  "notesBar": "NPLLIq_notesBar",
254
+ "dialogTabActive": "NPLLIq_dialogTabActive",
255
+ "balanceWinHeader": "NPLLIq_balanceWinHeader",
256
+ "balanceRowValue": "NPLLIq_balanceRowValue",
257
+ "fullNotice": "NPLLIq_fullNotice",
258
+ "logUsedCol": "NPLLIq_logUsedCol",
259
+ "upgradeCommands": "NPLLIq_upgradeCommands",
260
+ "rowHeader": "NPLLIq_rowHeader",
261
+ "fillWarn": "NPLLIq_fillWarn",
257
262
  "logDialog": "NPLLIq_logDialog",
258
- "logHeader": "NPLLIq_logHeader",
259
- "rowDropTarget": "NPLLIq_rowDropTarget",
260
- "tab": "NPLLIq_tab",
261
- "bar": "NPLLIq_bar",
262
- "dialogOverlay": "NPLLIq_dialogOverlay",
263
- "upgradeClose": "NPLLIq_upgradeClose",
264
- "dialogHeader": "NPLLIq_dialogHeader",
265
- "rowMeta": "NPLLIq_rowMeta",
266
- "rowDrag": "NPLLIq_rowDrag",
267
- "upgradeBannerFlash": "NPLLIq_upgradeBannerFlash",
268
- "logClearDialog": "NPLLIq_logClearDialog",
269
- "logClearBtn": "NPLLIq_logClearBtn",
270
- "dialogTitle": "NPLLIq_dialogTitle",
271
- "panelDim": "NPLLIq_panelDim",
272
- "switch": "NPLLIq_switch",
273
- "balanceStateHint": "NPLLIq_balanceStateHint",
274
- "balanceBarBadge": "NPLLIq_balanceBarBadge",
275
- "logScroll": "NPLLIq_logScroll",
276
- "balanceToggleOpen": "NPLLIq_balanceToggleOpen",
277
- "balanceValueLow": "NPLLIq_balanceValueLow",
278
- "settingsBtn": "NPLLIq_settingsBtn",
263
+ "balanceRowHeader": "NPLLIq_balanceRowHeader",
264
+ "monitorRow": "NPLLIq_monitorRow",
279
265
  "logPager": "NPLLIq_logPager",
280
- "checkUpdatesRow": "NPLLIq_checkUpdatesRow",
281
- "dialogTab": "NPLLIq_dialogTab",
282
- "balanceRowRefresh": "NPLLIq_balanceRowRefresh",
283
- "logPagerControls": "NPLLIq_logPagerControls",
284
- "panelDimStrong": "NPLLIq_panelDimStrong",
285
- "dialogBtn": "NPLLIq_dialogBtn",
286
- "dialogLabel": "NPLLIq_dialogLabel",
287
- "logSearch": "NPLLIq_logSearch",
288
- "notice": "NPLLIq_notice",
289
- "balanceWinHeader": "NPLLIq_balanceWinHeader",
290
- "noteMenuBackdrop": "NPLLIq_noteMenuBackdrop",
291
- "noteWinBar": "NPLLIq_noteWinBar",
266
+ "title": "NPLLIq_title",
292
267
  "logPageSizeSelect": "NPLLIq_logPageSizeSelect",
293
- "logTable": "NPLLIq_logTable",
294
- "dialogTabActive": "NPLLIq_dialogTabActive",
295
- "fillOver": "NPLLIq_fillOver",
296
- "copyBtn": "NPLLIq_copyBtn",
297
- "versionNew": "NPLLIq_versionNew",
298
- "settingsBtnActive": "NPLLIq_settingsBtnActive",
299
- "tabLabel": "NPLLIq_tabLabel",
300
- "noticeError": "NPLLIq_noticeError",
268
+ "balanceRowRefresh": "NPLLIq_balanceRowRefresh",
269
+ "balanceToggle": "NPLLIq_balanceToggle",
270
+ "upgradeBannerFlash": "NPLLIq_upgradeBannerFlash",
271
+ "upgradeBannerText": "NPLLIq_upgradeBannerText",
301
272
  "copyBtnDone": "NPLLIq_copyBtnDone",
302
- "logModelCol": "NPLLIq_logModelCol",
303
- "noteChipOpen": "NPLLIq_noteChipOpen",
304
- "fillIdle": "NPLLIq_fillIdle",
273
+ "checkBtn": "NPLLIq_checkBtn",
274
+ "logPagerBtn": "NPLLIq_logPagerBtn",
275
+ "dialogOverlay": "NPLLIq_dialogOverlay",
276
+ "noteWinTitleText": "NPLLIq_noteWinTitleText",
277
+ "balanceBarBadge": "NPLLIq_balanceBarBadge",
278
+ "controls": "NPLLIq_controls",
279
+ "upgradeHint": "NPLLIq_upgradeHint",
305
280
  "resetRow": "NPLLIq_resetRow",
306
- "noteNew": "NPLLIq_noteNew",
281
+ "dialogHint": "NPLLIq_dialogHint",
282
+ "rowDrag": "NPLLIq_rowDrag",
283
+ "balanceBarLow": "NPLLIq_balanceBarLow",
284
+ "bar": "NPLLIq_bar",
285
+ "panelDim": "NPLLIq_panelDim",
307
286
  "noteMenuItem": "NPLLIq_noteMenuItem",
308
- "noteWinText": "NPLLIq_noteWinText",
309
- "noteWinResize": "NPLLIq_noteWinResize",
310
- "noteChip": "NPLLIq_noteChip",
311
- "balanceToggle": "NPLLIq_balanceToggle",
312
- "checkUpdatesLabel": "NPLLIq_checkUpdatesLabel",
313
- "rowName": "NPLLIq_rowName",
287
+ "currentBadge": "NPLLIq_currentBadge",
288
+ "rowDragging": "NPLLIq_rowDragging",
289
+ "upgradeCommand": "NPLLIq_upgradeCommand",
290
+ "rowMeta": "NPLLIq_rowMeta",
291
+ "panelDimStrong": "NPLLIq_panelDimStrong",
314
292
  "checkErrorHint": "NPLLIq_checkErrorHint",
315
- "settingsDialog": "NPLLIq_settingsDialog",
293
+ "logDayCol": "NPLLIq_logDayCol",
294
+ "balanceBarRefresh": "NPLLIq_balanceBarRefresh",
295
+ "header": "NPLLIq_header",
296
+ "checkUpdatesLabel": "NPLLIq_checkUpdatesLabel",
297
+ "logPagerPages": "NPLLIq_logPagerPages",
298
+ "noteNewPlus": "NPLLIq_noteNewPlus",
299
+ "balanceToggleOpen": "NPLLIq_balanceToggleOpen",
300
+ "logTable": "NPLLIq_logTable",
301
+ "version": "NPLLIq_version",
302
+ "settingsBtn": "NPLLIq_settingsBtn",
303
+ "settingsBtnActive": "NPLLIq_settingsBtnActive",
304
+ "balanceValueOk": "NPLLIq_balanceValueOk",
305
+ "resetSelect": "NPLLIq_resetSelect",
306
+ "noteWinTitle": "NPLLIq_noteWinTitle",
307
+ "logPagerInfo": "NPLLIq_logPagerInfo",
308
+ "noteMenu": "NPLLIq_noteMenu",
309
+ "upgradeCommandRow": "NPLLIq_upgradeCommandRow",
310
+ "dialogTabs": "NPLLIq_dialogTabs",
311
+ "balanceRow": "NPLLIq_balanceRow",
312
+ "logPagerControls": "NPLLIq_logPagerControls",
316
313
  "monitorHint": "NPLLIq_monitorHint",
317
- "input": "NPLLIq_input",
318
- "tabIcon": "NPLLIq_tabIcon",
314
+ "noticeError": "NPLLIq_noticeError",
315
+ "tabLabel": "NPLLIq_tabLabel",
316
+ "tab": "NPLLIq_tab",
317
+ "dialog": "NPLLIq_dialog",
318
+ "balanceSortBtn": "NPLLIq_balanceSortBtn",
319
+ "fillOver": "NPLLIq_fillOver",
320
+ "dialogBtn": "NPLLIq_dialogBtn",
319
321
  "noteWin": "NPLLIq_noteWin",
320
- "balanceRowValue": "NPLLIq_balanceRowValue",
321
- "logToolbar": "NPLLIq_logToolbar",
322
- "upgradeCommandRow": "NPLLIq_upgradeCommandRow",
323
- "logPagerInfo": "NPLLIq_logPagerInfo",
324
- "row": "NPLLIq_row",
325
- "checkBtn": "NPLLIq_checkBtn",
326
- "dialogHint": "NPLLIq_dialogHint",
327
322
  "save": "NPLLIq_save",
328
- "balanceSortBtn": "NPLLIq_balanceSortBtn",
329
- "headerActions": "NPLLIq_headerActions",
323
+ "dialogTab": "NPLLIq_dialogTab",
324
+ "noteWinText": "NPLLIq_noteWinText",
325
+ "balanceWin": "NPLLIq_balanceWin",
326
+ "logClearDate": "NPLLIq_logClearDate",
330
327
  "monitorName": "NPLLIq_monitorName",
331
- "currentBadge": "NPLLIq_currentBadge",
332
- "upgradeBannerText": "NPLLIq_upgradeBannerText",
333
- "monitorList": "NPLLIq_monitorList",
328
+ "tabIcon": "NPLLIq_tabIcon",
329
+ "logClearBtn": "NPLLIq_logClearBtn",
330
+ "dialogBtnPrimary": "NPLLIq_dialogBtnPrimary",
331
+ "body": "NPLLIq_body",
332
+ "rowName": "NPLLIq_rowName",
333
+ "collapse": "NPLLIq_collapse",
334
+ "dialogHeader": "NPLLIq_dialogHeader",
334
335
  "balanceWinBody": "NPLLIq_balanceWinBody",
335
- "version": "NPLLIq_version",
336
- "monitorRow": "NPLLIq_monitorRow",
337
- "noteWinTitle": "NPLLIq_noteWinTitle",
338
- "balanceRow": "NPLLIq_balanceRow",
339
- "upgradeBanner": "NPLLIq_upgradeBanner",
340
- "rowHeader": "NPLLIq_rowHeader",
341
- "balanceBar": "NPLLIq_balanceBar",
342
- "balanceBarRefresh": "NPLLIq_balanceBarRefresh",
343
- "balanceStateError": "NPLLIq_balanceStateError",
344
- "noteWinGripBar": "NPLLIq_noteWinGripBar",
345
- "upgradeHint": "NPLLIq_upgradeHint",
346
- "logPagerBtn": "NPLLIq_logPagerBtn",
347
- "headerText": "NPLLIq_headerText",
348
- "dialogClose": "NPLLIq_dialogClose",
349
- "noteNewPlus": "NPLLIq_noteNewPlus",
350
- "noteWinTitleText": "NPLLIq_noteWinTitleText",
351
336
  "balanceBarDim": "NPLLIq_balanceBarDim",
352
- "logClearDate": "NPLLIq_logClearDate",
353
- "gearBtn": "NPLLIq_gearBtn",
354
- "balanceValueError": "NPLLIq_balanceValueError",
355
- "fullNotice": "NPLLIq_fullNotice",
356
- "rowDragging": "NPLLIq_rowDragging",
357
- "fillWarn": "NPLLIq_fillWarn",
358
- "collapse": "NPLLIq_collapse",
359
- "panel": "NPLLIq_panel",
360
- "balanceWinTitle": "NPLLIq_balanceWinTitle",
361
- "balanceRefreshAll": "NPLLIq_balanceRefreshAll",
362
- "logUsedCol": "NPLLIq_logUsedCol",
363
- "balanceBarError": "NPLLIq_balanceBarError",
364
- "dialogTabs": "NPLLIq_dialogTabs",
365
- "upgradeCommands": "NPLLIq_upgradeCommands",
366
- "balanceWin": "NPLLIq_balanceWin",
367
- "logPagerPages": "NPLLIq_logPagerPages",
368
- "balanceValueOk": "NPLLIq_balanceValueOk",
369
- "controls": "NPLLIq_controls",
337
+ "noteWinCollapsed": "NPLLIq_noteWinCollapsed",
338
+ "switch": "NPLLIq_switch",
339
+ "rowDropTarget": "NPLLIq_rowDropTarget",
340
+ "dialogTitle": "NPLLIq_dialogTitle",
341
+ "checkUpdatesRow": "NPLLIq_checkUpdatesRow",
370
342
  "dialogBody": "NPLLIq_dialogBody",
371
- "subtitle": "NPLLIq_subtitle",
372
- "dialogSection": "NPLLIq_dialogSection",
373
- "balanceRowHeader": "NPLLIq_balanceRowHeader",
374
- "logDayCol": "NPLLIq_logDayCol",
375
343
  "balanceBarText": "NPLLIq_balanceBarText",
344
+ "settingsDialog": "NPLLIq_settingsDialog",
345
+ "logModelCol": "NPLLIq_logModelCol",
346
+ "logHeader": "NPLLIq_logHeader",
347
+ "balanceBar": "NPLLIq_balanceBar",
348
+ "upgradeBanner": "NPLLIq_upgradeBanner",
349
+ "balanceBarError": "NPLLIq_balanceBarError",
350
+ "monitorList": "NPLLIq_monitorList",
351
+ "balanceRefreshAll": "NPLLIq_balanceRefreshAll",
352
+ "dialogSection": "NPLLIq_dialogSection",
353
+ "balanceValueError": "NPLLIq_balanceValueError",
354
+ "balanceLastLine": "NPLLIq_balanceLastLine",
355
+ "upgradeClose": "NPLLIq_upgradeClose",
356
+ "notice": "NPLLIq_notice",
357
+ "balanceStateError": "NPLLIq_balanceStateError",
358
+ "fillIdle": "NPLLIq_fillIdle",
359
+ "noteChipOpen": "NPLLIq_noteChipOpen",
360
+ "versionNew": "NPLLIq_versionNew",
376
361
  "balanceRowName": "NPLLIq_balanceRowName",
377
- "resetSelect": "NPLLIq_resetSelect",
362
+ "headerText": "NPLLIq_headerText",
363
+ "row": "NPLLIq_row",
364
+ "input": "NPLLIq_input",
365
+ "balanceWinTitle": "NPLLIq_balanceWinTitle",
366
+ "headerActions": "NPLLIq_headerActions",
378
367
  "noteWinBtn": "NPLLIq_noteWinBtn",
368
+ "radioRow": "NPLLIq_radioRow",
369
+ "balanceValueLow": "NPLLIq_balanceValueLow",
370
+ "gearBtn": "NPLLIq_gearBtn",
371
+ "dialogLabel": "NPLLIq_dialogLabel",
372
+ "logScroll": "NPLLIq_logScroll",
373
+ "noteWinGripBar": "NPLLIq_noteWinGripBar",
374
+ "noteWinBar": "NPLLIq_noteWinBar",
375
+ "subtitle": "NPLLIq_subtitle",
376
+ "copyBtn": "NPLLIq_copyBtn",
379
377
  "selectBtn": "NPLLIq_selectBtn",
378
+ "logSearch": "NPLLIq_logSearch",
379
+ "logClearDialog": "NPLLIq_logClearDialog",
380
+ "noteNew": "NPLLIq_noteNew",
380
381
  "dialogActions": "NPLLIq_dialogActions",
381
- "body": "NPLLIq_body",
382
- "balanceLastLine": "NPLLIq_balanceLastLine",
383
- "header": "NPLLIq_header",
384
- "balanceBarLow": "NPLLIq_balanceBarLow",
385
- "dialog": "NPLLIq_dialog",
386
- "noteMenu": "NPLLIq_noteMenu",
387
- "title": "NPLLIq_title",
388
- "noteWinCollapsed": "NPLLIq_noteWinCollapsed",
389
- "upgradeCommand": "NPLLIq_upgradeCommand",
390
- "dialogBtnPrimary": "NPLLIq_dialogBtnPrimary",
391
- "radioRow": "NPLLIq_radioRow"
382
+ "logToolbar": "NPLLIq_logToolbar",
383
+ "noteChip": "NPLLIq_noteChip"
392
384
  };
393
385
  //#endregion
394
386
  //#region lib/types/client/TokenQuotaPanel.js
@@ -879,7 +871,7 @@ window.__ModuleLoader__.load({
879
871
  for (const provider of providers) {
880
872
  const bal = balances.find((b) => b.provider === provider);
881
873
  if (bal !== void 0) map.set(provider, bal);
882
- else if (TOKEN_QUOTA_BALANCE_PROVIDERS.includes(provider)) map.set(provider, "loading");
874
+ else if (balances.length === 0) map.set(provider, "loading");
883
875
  else map.set(provider, "unsupported");
884
876
  }
885
877
  return map;
@@ -1043,13 +1035,13 @@ window.__ModuleLoader__.load({
1043
1035
  onPointerLeave: () => {
1044
1036
  setHovered(false);
1045
1037
  },
1046
- children: [
1047
- (0, react_jsx_runtime.jsxs)("div", {
1048
- className: TokenQuotaPanel_module_css_default.header,
1049
- onPointerDown: (event) => {
1050
- beginDrag(event, panelRef.current, applyPanelPos);
1051
- },
1052
- children: [(0, react_jsx_runtime.jsx)("div", {
1038
+ children: [(0, react_jsx_runtime.jsxs)("div", {
1039
+ className: TokenQuotaPanel_module_css_default.header,
1040
+ onPointerDown: (event) => {
1041
+ beginDrag(event, panelRef.current, applyPanelPos);
1042
+ },
1043
+ children: [
1044
+ (0, react_jsx_runtime.jsx)("div", {
1053
1045
  className: TokenQuotaPanel_module_css_default.headerText,
1054
1046
  children: (0, react_jsx_runtime.jsxs)("div", {
1055
1047
  className: TokenQuotaPanel_module_css_default.title,
@@ -1058,16 +1050,17 @@ window.__ModuleLoader__.load({
1058
1050
  title: t("upgradeAvailableHint"),
1059
1051
  children: [
1060
1052
  "v",
1061
- "0.1.38",
1053
+ "0.1.40",
1062
1054
  " → v",
1063
1055
  upgrade.latestVersion
1064
1056
  ]
1065
1057
  }) : (0, react_jsx_runtime.jsxs)("span", {
1066
1058
  className: TokenQuotaPanel_module_css_default.version,
1067
- children: ["v", "0.1.38"]
1059
+ children: ["v", "0.1.40"]
1068
1060
  })]
1069
1061
  })
1070
- }), (0, react_jsx_runtime.jsxs)("div", {
1062
+ }),
1063
+ (0, react_jsx_runtime.jsxs)("div", {
1071
1064
  className: TokenQuotaPanel_module_css_default.headerActions,
1072
1065
  onPointerDown: (event) => {
1073
1066
  event.stopPropagation();
@@ -1106,296 +1099,295 @@ window.__ModuleLoader__.load({
1106
1099
  children: t("collapse")
1107
1100
  })
1108
1101
  ]
1109
- })]
1110
- }),
1111
- (0, react_jsx_runtime.jsxs)("div", {
1112
- className: TokenQuotaPanel_module_css_default.notesBar,
1113
- onPointerDown: (event) => {
1114
- event.stopPropagation();
1115
- },
1116
- children: [
1117
- notes.map((note) => {
1118
- const open = note.visible && !note.collapsed;
1119
- return (0, react_jsx_runtime.jsx)("button", {
1102
+ }),
1103
+ (0, react_jsx_runtime.jsxs)("div", {
1104
+ className: TokenQuotaPanel_module_css_default.notesBar,
1105
+ onPointerDown: (event) => {
1106
+ event.stopPropagation();
1107
+ },
1108
+ children: [
1109
+ notes.map((note) => {
1110
+ const open = note.visible && !note.collapsed;
1111
+ return (0, react_jsx_runtime.jsx)("button", {
1112
+ type: "button",
1113
+ className: `${TokenQuotaPanel_module_css_default.noteChip}${open ? ` ${TokenQuotaPanel_module_css_default.noteChipOpen}` : ""}`,
1114
+ title: note.title.trim() === "" ? t("noteUntitled") : note.title,
1115
+ onClick: () => {
1116
+ patchNote(note.id, {
1117
+ visible: true,
1118
+ collapsed: false
1119
+ });
1120
+ },
1121
+ onContextMenu: (event) => {
1122
+ event.preventDefault();
1123
+ setNoteMenu({
1124
+ id: note.id,
1125
+ x: event.clientX,
1126
+ y: event.clientY
1127
+ });
1128
+ },
1129
+ children: noteInitial(note.title)
1130
+ }, note.id);
1131
+ }),
1132
+ (0, react_jsx_runtime.jsxs)("button", {
1133
+ type: "button",
1134
+ className: TokenQuotaPanel_module_css_default.noteNew,
1135
+ disabled: notes.length >= 5,
1136
+ title: notes.length >= 5 ? t("noteMaxHint") : t("noteNewHint"),
1137
+ onClick: createNote,
1138
+ children: [(0, react_jsx_runtime.jsxs)("svg", {
1139
+ viewBox: "0 0 16 16",
1140
+ width: "13",
1141
+ height: "13",
1142
+ "aria-hidden": "true",
1143
+ children: [(0, react_jsx_runtime.jsx)("path", {
1144
+ d: "M4 1.6h4.6L12.4 5.4v9H4z",
1145
+ fill: "none",
1146
+ stroke: "currentColor",
1147
+ strokeWidth: "1.2",
1148
+ strokeLinejoin: "round"
1149
+ }), (0, react_jsx_runtime.jsx)("path", {
1150
+ d: "M8.4 1.6v3.9h4",
1151
+ fill: "none",
1152
+ stroke: "currentColor",
1153
+ strokeWidth: "1.2",
1154
+ strokeLinejoin: "round"
1155
+ })]
1156
+ }), (0, react_jsx_runtime.jsx)("span", {
1157
+ className: TokenQuotaPanel_module_css_default.noteNewPlus,
1158
+ children: "+"
1159
+ })]
1160
+ }),
1161
+ balanceEnabled && (0, react_jsx_runtime.jsx)("button", {
1120
1162
  type: "button",
1121
- className: `${TokenQuotaPanel_module_css_default.noteChip}${open ? ` ${TokenQuotaPanel_module_css_default.noteChipOpen}` : ""}`,
1122
- title: note.title.trim() === "" ? t("noteUntitled") : note.title,
1163
+ className: `${TokenQuotaPanel_module_css_default.noteNew} ${TokenQuotaPanel_module_css_default.balanceToggle}${balanceOpen ? ` ${TokenQuotaPanel_module_css_default.balanceToggleOpen}` : ""}`,
1164
+ title: t("balanceTitle"),
1123
1165
  onClick: () => {
1124
- patchNote(note.id, {
1125
- visible: true,
1126
- collapsed: false
1166
+ if (balanceOpen) {
1167
+ setBalanceOpen(false);
1168
+ return;
1169
+ }
1170
+ const winW = 280;
1171
+ const rect = panelRef.current?.getBoundingClientRect();
1172
+ if (rect !== void 0) setBalancePos({
1173
+ x: Math.max(8, rect.left - winW - 8),
1174
+ y: rect.top
1127
1175
  });
1128
- },
1129
- onContextMenu: (event) => {
1130
- event.preventDefault();
1131
- setNoteMenu({
1132
- id: note.id,
1133
- x: event.clientX,
1134
- y: event.clientY
1176
+ else setBalancePos({
1177
+ x: Math.max(8, (typeof window !== "undefined" ? window.innerWidth : 800) - 12 - 320 - winW - 8),
1178
+ y: 56
1135
1179
  });
1180
+ setBalanceOpen(true);
1136
1181
  },
1137
- children: noteInitial(note.title)
1138
- }, note.id);
1139
- }),
1140
- (0, react_jsx_runtime.jsxs)("button", {
1141
- type: "button",
1142
- className: TokenQuotaPanel_module_css_default.noteNew,
1143
- disabled: notes.length >= 5,
1144
- title: notes.length >= 5 ? t("noteMaxHint") : t("noteNewHint"),
1145
- onClick: createNote,
1146
- children: [(0, react_jsx_runtime.jsxs)("svg", {
1147
- viewBox: "0 0 16 16",
1148
- width: "13",
1149
- height: "13",
1150
- "aria-hidden": "true",
1151
- children: [(0, react_jsx_runtime.jsx)("path", {
1152
- d: "M4 1.6h4.6L12.4 5.4v9H4z",
1153
- fill: "none",
1154
- stroke: "currentColor",
1155
- strokeWidth: "1.2",
1156
- strokeLinejoin: "round"
1157
- }), (0, react_jsx_runtime.jsx)("path", {
1158
- d: "M8.4 1.6v3.9h4",
1159
- fill: "none",
1160
- stroke: "currentColor",
1161
- strokeWidth: "1.2",
1162
- strokeLinejoin: "round"
1163
- })]
1164
- }), (0, react_jsx_runtime.jsx)("span", {
1165
- className: TokenQuotaPanel_module_css_default.noteNewPlus,
1166
- children: "+"
1167
- })]
1168
- }),
1169
- balanceEnabled && (0, react_jsx_runtime.jsx)("button", {
1170
- type: "button",
1171
- className: `${TokenQuotaPanel_module_css_default.noteNew} ${TokenQuotaPanel_module_css_default.balanceToggle}${balanceOpen ? ` ${TokenQuotaPanel_module_css_default.balanceToggleOpen}` : ""}`,
1172
- title: t("balanceTitle"),
1173
- onClick: () => {
1174
- if (balanceOpen) {
1175
- setBalanceOpen(false);
1176
- return;
1177
- }
1178
- const winW = 280;
1179
- const rect = panelRef.current?.getBoundingClientRect();
1180
- if (rect !== void 0) setBalancePos({
1181
- x: Math.max(8, rect.left - winW - 8),
1182
- y: rect.top
1183
- });
1184
- else setBalancePos({
1185
- x: Math.max(8, (typeof window !== "undefined" ? window.innerWidth : 800) - 12 - 320 - winW - 8),
1186
- y: 56
1187
- });
1188
- setBalanceOpen(true);
1189
- },
1190
- "aria-pressed": balanceOpen,
1191
- children: (0, react_jsx_runtime.jsxs)("svg", {
1192
- viewBox: "0 0 16 16",
1193
- width: "13",
1194
- height: "13",
1195
- "aria-hidden": "true",
1196
- children: [(0, react_jsx_runtime.jsx)("circle", {
1197
- cx: "8",
1198
- cy: "8",
1199
- r: "6.3",
1200
- fill: "none",
1201
- stroke: "currentColor",
1202
- strokeWidth: "1.3"
1203
- }), (0, react_jsx_runtime.jsx)("text", {
1204
- x: "8",
1205
- y: "11",
1206
- textAnchor: "middle",
1207
- fontSize: "9",
1208
- fontWeight: "700",
1209
- fill: "currentColor",
1210
- children: "¥"
1211
- })]
1182
+ "aria-pressed": balanceOpen,
1183
+ children: (0, react_jsx_runtime.jsxs)("svg", {
1184
+ viewBox: "0 0 16 16",
1185
+ width: "13",
1186
+ height: "13",
1187
+ "aria-hidden": "true",
1188
+ children: [(0, react_jsx_runtime.jsx)("circle", {
1189
+ cx: "8",
1190
+ cy: "8",
1191
+ r: "6.3",
1192
+ fill: "none",
1193
+ stroke: "currentColor",
1194
+ strokeWidth: "1.3"
1195
+ }), (0, react_jsx_runtime.jsx)("text", {
1196
+ x: "8",
1197
+ y: "11",
1198
+ textAnchor: "middle",
1199
+ fontSize: "9",
1200
+ fontWeight: "700",
1201
+ fill: "currentColor",
1202
+ children: "¥"
1203
+ })]
1204
+ })
1212
1205
  })
1213
- })
1214
- ]
1215
- }),
1216
- (0, react_jsx_runtime.jsxs)("div", {
1217
- className: TokenQuotaPanel_module_css_default.body,
1218
- children: [
1219
- loading && (0, react_jsx_runtime.jsx)("div", {
1220
- className: TokenQuotaPanel_module_css_default.notice,
1221
- children: t("loading")
1222
- }),
1223
- error !== null && (0, react_jsx_runtime.jsx)("div", {
1224
- className: TokenQuotaPanel_module_css_default.noticeError,
1225
- children: error
1226
- }),
1227
- fullNotice !== null && (0, react_jsx_runtime.jsx)("div", {
1228
- className: TokenQuotaPanel_module_css_default.fullNotice,
1229
- role: "alert",
1230
- children: fullNotice
1231
- }),
1232
- upgrade !== null && !upgradeDismissed && (0, react_jsx_runtime.jsxs)("div", {
1233
- className: `${TokenQuotaPanel_module_css_default.upgradeBanner}${upgradeFlash ? ` ${TokenQuotaPanel_module_css_default.upgradeBannerFlash}` : ""}`,
1234
- role: "alert",
1206
+ ]
1207
+ })
1208
+ ]
1209
+ }), (0, react_jsx_runtime.jsxs)("div", {
1210
+ className: TokenQuotaPanel_module_css_default.body,
1211
+ children: [
1212
+ loading && (0, react_jsx_runtime.jsx)("div", {
1213
+ className: TokenQuotaPanel_module_css_default.notice,
1214
+ children: t("loading")
1215
+ }),
1216
+ error !== null && (0, react_jsx_runtime.jsx)("div", {
1217
+ className: TokenQuotaPanel_module_css_default.noticeError,
1218
+ children: error
1219
+ }),
1220
+ fullNotice !== null && (0, react_jsx_runtime.jsx)("div", {
1221
+ className: TokenQuotaPanel_module_css_default.fullNotice,
1222
+ role: "alert",
1223
+ children: fullNotice
1224
+ }),
1225
+ upgrade !== null && !upgradeDismissed && (0, react_jsx_runtime.jsxs)("div", {
1226
+ className: `${TokenQuotaPanel_module_css_default.upgradeBanner}${upgradeFlash ? ` ${TokenQuotaPanel_module_css_default.upgradeBannerFlash}` : ""}`,
1227
+ role: "alert",
1228
+ children: [
1229
+ (0, react_jsx_runtime.jsx)("div", {
1230
+ className: TokenQuotaPanel_module_css_default.upgradeBannerText,
1231
+ children: t("upgradeAvailable").replace("{version}", upgrade.latestVersion)
1232
+ }),
1233
+ (0, react_jsx_runtime.jsx)("div", {
1234
+ className: TokenQuotaPanel_module_css_default.upgradeCommands,
1235
+ children: upgrade.commands.map((cmd) => (0, react_jsx_runtime.jsxs)("div", {
1236
+ className: TokenQuotaPanel_module_css_default.upgradeCommandRow,
1237
+ children: [(0, react_jsx_runtime.jsx)("code", {
1238
+ className: TokenQuotaPanel_module_css_default.upgradeCommand,
1239
+ children: cmd
1240
+ }), (0, react_jsx_runtime.jsx)("button", {
1241
+ type: "button",
1242
+ className: `${TokenQuotaPanel_module_css_default.copyBtn}${copiedCmd === cmd ? ` ${TokenQuotaPanel_module_css_default.copyBtnDone}` : ""}`,
1243
+ onClick: () => {
1244
+ copyUpgradeCommand(cmd);
1245
+ },
1246
+ children: copiedCmd === cmd ? t("copied") : t("copy")
1247
+ })]
1248
+ }, cmd))
1249
+ }),
1250
+ (0, react_jsx_runtime.jsx)("div", {
1251
+ className: TokenQuotaPanel_module_css_default.upgradeHint,
1252
+ children: t("upgradeHint")
1253
+ }),
1254
+ (0, react_jsx_runtime.jsx)("button", {
1255
+ type: "button",
1256
+ className: TokenQuotaPanel_module_css_default.upgradeClose,
1257
+ onClick: () => {
1258
+ actions.setUpgradeDismissed(true);
1259
+ },
1260
+ "aria-label": t("close"),
1261
+ children: "×"
1262
+ })
1263
+ ]
1264
+ }),
1265
+ !loading && error === null && visibleRows.length === 0 && (0, react_jsx_runtime.jsx)("div", {
1266
+ className: TokenQuotaPanel_module_css_default.notice,
1267
+ children: monitored !== null && monitored.length === 0 ? t("noMonitored") : t("waiting")
1268
+ }),
1269
+ visibleRows.map((row) => {
1270
+ const state = barStateOf(row);
1271
+ const pct = row.limit > 0 ? Math.min(100, Math.round(row.used / row.limit * 100)) : 0;
1272
+ const barClass = state === "over" ? TokenQuotaPanel_module_css_default.fillOver : state === "warn" ? TokenQuotaPanel_module_css_default.fillWarn : TokenQuotaPanel_module_css_default.fillIdle;
1273
+ const editing = editingKey === row.key;
1274
+ return (0, react_jsx_runtime.jsxs)("div", {
1275
+ className: `${TokenQuotaPanel_module_css_default.row}${dragKey === row.key ? ` ${TokenQuotaPanel_module_css_default.rowDragging}` : ""}${dropKey === row.key && dragKey !== row.key ? ` ${TokenQuotaPanel_module_css_default.rowDropTarget}` : ""}`,
1276
+ onMouseEnter: () => {
1277
+ setHoveredRowKey(row.key);
1278
+ triggerRowBalanceRefreshIfStale(row.provider);
1279
+ },
1280
+ onMouseLeave: () => {
1281
+ setHoveredRowKey((prev) => prev === row.key ? null : prev);
1282
+ },
1283
+ onDragOver: (event) => {
1284
+ if (dragKey === null || dragKey === row.key) return;
1285
+ event.preventDefault();
1286
+ setDropKey(row.key);
1287
+ },
1288
+ onDrop: (event) => {
1289
+ event.preventDefault();
1290
+ if (dragKey !== null && dragKey !== row.key) setModelOrder(reorderKeys(rows.map((r) => r.key), dragKey, row.key));
1291
+ setDragKey(null);
1292
+ setDropKey(null);
1293
+ },
1294
+ onDragEnd: () => {
1295
+ setDragKey(null);
1296
+ setDropKey(null);
1297
+ },
1235
1298
  children: [
1236
- (0, react_jsx_runtime.jsx)("div", {
1237
- className: TokenQuotaPanel_module_css_default.upgradeBannerText,
1238
- children: t("upgradeAvailable").replace("{version}", upgrade.latestVersion)
1239
- }),
1240
- (0, react_jsx_runtime.jsx)("div", {
1241
- className: TokenQuotaPanel_module_css_default.upgradeCommands,
1242
- children: upgrade.commands.map((cmd) => (0, react_jsx_runtime.jsxs)("div", {
1243
- className: TokenQuotaPanel_module_css_default.upgradeCommandRow,
1244
- children: [(0, react_jsx_runtime.jsx)("code", {
1245
- className: TokenQuotaPanel_module_css_default.upgradeCommand,
1246
- children: cmd
1247
- }), (0, react_jsx_runtime.jsx)("button", {
1248
- type: "button",
1249
- className: `${TokenQuotaPanel_module_css_default.copyBtn}${copiedCmd === cmd ? ` ${TokenQuotaPanel_module_css_default.copyBtnDone}` : ""}`,
1250
- onClick: () => {
1251
- copyUpgradeCommand(cmd);
1299
+ (0, react_jsx_runtime.jsxs)("div", {
1300
+ className: TokenQuotaPanel_module_css_default.rowHeader,
1301
+ children: [
1302
+ (0, react_jsx_runtime.jsx)("span", {
1303
+ className: TokenQuotaPanel_module_css_default.rowDrag,
1304
+ draggable: true,
1305
+ title: t("reorderHint"),
1306
+ onDragStart: (event) => {
1307
+ setDragKey(row.key);
1308
+ event.dataTransfer.effectAllowed = "move";
1309
+ event.dataTransfer.setData("text/plain", row.key);
1252
1310
  },
1253
- children: copiedCmd === cmd ? t("copied") : t("copy")
1254
- })]
1255
- }, cmd))
1256
- }),
1257
- (0, react_jsx_runtime.jsx)("div", {
1258
- className: TokenQuotaPanel_module_css_default.upgradeHint,
1259
- children: t("upgradeHint")
1260
- }),
1261
- (0, react_jsx_runtime.jsx)("button", {
1262
- type: "button",
1263
- className: TokenQuotaPanel_module_css_default.upgradeClose,
1264
- onClick: () => {
1265
- actions.setUpgradeDismissed(true);
1266
- },
1267
- "aria-label": t("close"),
1268
- children: "×"
1269
- })
1270
- ]
1271
- }),
1272
- !loading && error === null && visibleRows.length === 0 && (0, react_jsx_runtime.jsx)("div", {
1273
- className: TokenQuotaPanel_module_css_default.notice,
1274
- children: monitored !== null && monitored.length === 0 ? t("noMonitored") : t("waiting")
1275
- }),
1276
- visibleRows.map((row) => {
1277
- const state = barStateOf(row);
1278
- const pct = row.limit > 0 ? Math.min(100, Math.round(row.used / row.limit * 100)) : 0;
1279
- const barClass = state === "over" ? TokenQuotaPanel_module_css_default.fillOver : state === "warn" ? TokenQuotaPanel_module_css_default.fillWarn : TokenQuotaPanel_module_css_default.fillIdle;
1280
- const editing = editingKey === row.key;
1281
- return (0, react_jsx_runtime.jsxs)("div", {
1282
- className: `${TokenQuotaPanel_module_css_default.row}${dragKey === row.key ? ` ${TokenQuotaPanel_module_css_default.rowDragging}` : ""}${dropKey === row.key && dragKey !== row.key ? ` ${TokenQuotaPanel_module_css_default.rowDropTarget}` : ""}`,
1283
- onMouseEnter: () => {
1284
- setHoveredRowKey(row.key);
1285
- triggerRowBalanceRefreshIfStale(row.provider);
1286
- },
1287
- onMouseLeave: () => {
1288
- setHoveredRowKey((prev) => prev === row.key ? null : prev);
1289
- },
1290
- onDragOver: (event) => {
1291
- if (dragKey === null || dragKey === row.key) return;
1292
- event.preventDefault();
1293
- setDropKey(row.key);
1294
- },
1295
- onDrop: (event) => {
1296
- event.preventDefault();
1297
- if (dragKey !== null && dragKey !== row.key) setModelOrder(reorderKeys(rows.map((r) => r.key), dragKey, row.key));
1298
- setDragKey(null);
1299
- setDropKey(null);
1300
- },
1301
- onDragEnd: () => {
1302
- setDragKey(null);
1303
- setDropKey(null);
1304
- },
1305
- children: [
1306
- (0, react_jsx_runtime.jsxs)("div", {
1307
- className: TokenQuotaPanel_module_css_default.rowHeader,
1308
- children: [
1309
- (0, react_jsx_runtime.jsx)("span", {
1310
- className: TokenQuotaPanel_module_css_default.rowDrag,
1311
- draggable: true,
1312
- title: t("reorderHint"),
1313
- onDragStart: (event) => {
1314
- setDragKey(row.key);
1315
- event.dataTransfer.effectAllowed = "move";
1316
- event.dataTransfer.setData("text/plain", row.key);
1317
- },
1318
- children: "⠿"
1319
- }),
1320
- (0, react_jsx_runtime.jsxs)("span", {
1321
- className: TokenQuotaPanel_module_css_default.rowName,
1322
- title: row.key,
1323
- children: [
1324
- row.name,
1325
- row.current && (0, react_jsx_runtime.jsx)("span", {
1326
- className: TokenQuotaPanel_module_css_default.currentBadge,
1327
- children: t("current")
1328
- }),
1329
- sessionId !== void 0 && !row.current && (0, react_jsx_runtime.jsx)("button", {
1330
- type: "button",
1331
- className: TokenQuotaPanel_module_css_default.selectBtn,
1332
- onClick: () => {
1333
- selectModel(sessionId, row.provider, row.model);
1334
- },
1335
- children: t("select")
1336
- })
1337
- ]
1338
- }),
1339
- (0, react_jsx_runtime.jsxs)("span", {
1340
- className: TokenQuotaPanel_module_css_default.rowMeta,
1341
- children: [(() => {
1342
- const bt = balanceTextForRow(row);
1343
- return hoveredRowKey === row.key && bt.text !== "" && metaToggle === 1 ? (0, react_jsx_runtime.jsx)("span", {
1344
- className: bt.cls,
1345
- children: bt.text
1346
- }) : (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: quotaText(row) });
1347
- })(), (0, react_jsx_runtime.jsx)("button", {
1311
+ children: "⠿"
1312
+ }),
1313
+ (0, react_jsx_runtime.jsxs)("span", {
1314
+ className: TokenQuotaPanel_module_css_default.rowName,
1315
+ title: row.key,
1316
+ children: [
1317
+ row.name,
1318
+ row.current && (0, react_jsx_runtime.jsx)("span", {
1319
+ className: TokenQuotaPanel_module_css_default.currentBadge,
1320
+ children: t("current")
1321
+ }),
1322
+ sessionId !== void 0 && !row.current && (0, react_jsx_runtime.jsx)("button", {
1348
1323
  type: "button",
1349
- className: TokenQuotaPanel_module_css_default.gearBtn,
1350
- title: t("setLimitHint"),
1324
+ className: TokenQuotaPanel_module_css_default.selectBtn,
1351
1325
  onClick: () => {
1352
- setEditingKey(editing ? null : row.key);
1326
+ selectModel(sessionId, row.provider, row.model);
1353
1327
  },
1354
- children: "⚙"
1355
- })]
1356
- })
1357
- ]
1358
- }),
1359
- (0, react_jsx_runtime.jsx)("div", {
1360
- className: TokenQuotaPanel_module_css_default.bar,
1361
- children: (0, react_jsx_runtime.jsx)("div", {
1362
- className: barClass,
1363
- style: { width: `${pct}%` }
1328
+ children: t("select")
1329
+ })
1330
+ ]
1331
+ }),
1332
+ (0, react_jsx_runtime.jsxs)("span", {
1333
+ className: TokenQuotaPanel_module_css_default.rowMeta,
1334
+ children: [(() => {
1335
+ const bt = balanceTextForRow(row);
1336
+ return hoveredRowKey === row.key && bt.text !== "" && metaToggle === 1 ? (0, react_jsx_runtime.jsx)("span", {
1337
+ className: bt.cls,
1338
+ children: bt.text
1339
+ }) : (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: quotaText(row) });
1340
+ })(), (0, react_jsx_runtime.jsx)("button", {
1341
+ type: "button",
1342
+ className: TokenQuotaPanel_module_css_default.gearBtn,
1343
+ title: t("setLimitHint"),
1344
+ onClick: () => {
1345
+ setEditingKey(editing ? null : row.key);
1346
+ },
1347
+ children: "⚙"
1348
+ })]
1364
1349
  })
1365
- }),
1366
- editing && (0, react_jsx_runtime.jsxs)("div", {
1367
- className: TokenQuotaPanel_module_css_default.controls,
1368
- children: [(0, react_jsx_runtime.jsx)("input", {
1369
- className: TokenQuotaPanel_module_css_default.input,
1370
- type: "number",
1371
- min: 0,
1372
- step: 1e4,
1373
- placeholder: t("limitPlaceholder"),
1374
- value: drafts[row.key] ?? "",
1375
- onChange: (event) => {
1376
- setDrafts((prev) => ({
1377
- ...prev,
1378
- [row.key]: event.target.value
1379
- }));
1380
- },
1381
- onKeyDown: (event) => {
1382
- if (event.key === "Enter") commitLimit(row);
1383
- }
1384
- }), (0, react_jsx_runtime.jsx)("button", {
1385
- type: "button",
1386
- className: TokenQuotaPanel_module_css_default.save,
1387
- onClick: () => {
1388
- commitLimit(row);
1389
- },
1390
- children: t("save")
1391
- })]
1350
+ ]
1351
+ }),
1352
+ (0, react_jsx_runtime.jsx)("div", {
1353
+ className: TokenQuotaPanel_module_css_default.bar,
1354
+ children: (0, react_jsx_runtime.jsx)("div", {
1355
+ className: barClass,
1356
+ style: { width: `${pct}%` }
1392
1357
  })
1393
- ]
1394
- }, row.key);
1395
- })
1396
- ]
1397
- })
1398
- ]
1358
+ }),
1359
+ editing && (0, react_jsx_runtime.jsxs)("div", {
1360
+ className: TokenQuotaPanel_module_css_default.controls,
1361
+ children: [(0, react_jsx_runtime.jsx)("input", {
1362
+ className: TokenQuotaPanel_module_css_default.input,
1363
+ type: "number",
1364
+ min: 0,
1365
+ step: 1e4,
1366
+ placeholder: t("limitPlaceholder"),
1367
+ value: drafts[row.key] ?? "",
1368
+ onChange: (event) => {
1369
+ setDrafts((prev) => ({
1370
+ ...prev,
1371
+ [row.key]: event.target.value
1372
+ }));
1373
+ },
1374
+ onKeyDown: (event) => {
1375
+ if (event.key === "Enter") commitLimit(row);
1376
+ }
1377
+ }), (0, react_jsx_runtime.jsx)("button", {
1378
+ type: "button",
1379
+ className: TokenQuotaPanel_module_css_default.save,
1380
+ onClick: () => {
1381
+ commitLimit(row);
1382
+ },
1383
+ children: t("save")
1384
+ })]
1385
+ })
1386
+ ]
1387
+ }, row.key);
1388
+ })
1389
+ ]
1390
+ })]
1399
1391
  }),
1400
1392
  dialogOpen && (0, react_jsx_runtime.jsxs)("div", {
1401
1393
  ref: settingsRef,