dsh-plugin 1.3.2 → 1.3.3
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/client/client.js +635 -327
- package/client/client.js.map +1 -1
- package/lib/http/routes.js +22 -1
- package/lib/services/log.js +12 -0
- package/lib/types/services/log.d.ts +2 -0
- package/package.json +1 -1
- package/src/client/components/PluginHubSection.tsx +16 -6
- package/src/client/components/modals/ConfirmDialog.tsx +73 -0
- package/src/client/components/modals/LogsModal.tsx +49 -4
- package/src/client/components/modals/NotificationsModal.tsx +29 -4
- package/src/client/components/modals/modals.tsx +13 -1
- package/src/client/components/ui/icons.tsx +48 -0
- package/src/client/components/views/LogsView.tsx +1 -1
- package/src/client/components/views/SettingsView.tsx +5 -1
- package/src/client/data/catalog.ts +8 -7
- package/src/client/hooks/useCatalog.ts +37 -5
- package/src/client/locales.ts +22 -2
- package/src/client/logic/ensure-plugin-css.ts +42 -0
- package/src/client/styles/LogsView.module.css +29 -8
- package/src/client/styles/Modal.module.css +77 -0
- package/src/server/http/routes.ts +20 -1
- package/src/server/services/log.ts +12 -0
package/client/client.js
CHANGED
|
@@ -140,6 +140,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
140
140
|
logOpenFile: "打开文件",
|
|
141
141
|
logOpenFileTip: "在系统文件管理器中定位日志文件",
|
|
142
142
|
logOpenFileFail: "打开失败,请在文件管理器中手动定位",
|
|
143
|
+
logClearAll: "清空所有日志",
|
|
144
|
+
logClearConfirmTitle: "清空所有日志?",
|
|
145
|
+
logClearConfirmDesc: "将删除全部日志记录,且不可恢复。",
|
|
146
|
+
logClearing: "正在清空…",
|
|
147
|
+
logClearAllTip: "清空全部日志记录",
|
|
148
|
+
logClearFailed: "清空失败,请重试",
|
|
143
149
|
logPathSettingTitle: "日志存放位置",
|
|
144
150
|
logPathSettingDesc: "默认存于宿主配置目录,可填目录或 .log 文件路径改存别处",
|
|
145
151
|
logPathPlaceholder: "留空恢复默认",
|
|
@@ -235,7 +241,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
235
241
|
restartNow: "立即重启",
|
|
236
242
|
restartLater: "稍后重启",
|
|
237
243
|
restarting: "正在重启…",
|
|
238
|
-
restartHint: "
|
|
244
|
+
restartHint: "重启会中断正在进行的安装/卸载任务,其进度将丢失。部分插件(如插件市场、顶层 bundle)需重启后才会生效。",
|
|
239
245
|
done: "完成",
|
|
240
246
|
restartPendingHint: "安装成功,重启后生效",
|
|
241
247
|
restartPendingHintUninstall: "卸载成功,重启后移除",
|
|
@@ -246,7 +252,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
246
252
|
notificationsDesc: "安装、卸载任务与更新提醒都会记录在这里,即使错过提示也能随时回来查看。",
|
|
247
253
|
notificationsEmpty: "暂无通知记录",
|
|
248
254
|
notificationsClear: "清空通知",
|
|
255
|
+
notificationsClearConfirmTitle: "清空所有通知?",
|
|
256
|
+
notificationsClearConfirmDesc: "将删除全部通知记录,且不可恢复。",
|
|
249
257
|
removeNotification: "删除这条通知",
|
|
258
|
+
removeNotificationConfirmTitle: "删除这条通知?",
|
|
259
|
+
removeNotificationConfirmDesc: "该通知将被移除,且不可恢复。",
|
|
250
260
|
queuedTitle: "已加入安装排队",
|
|
251
261
|
queuedUninstallTitle: "已加入卸载排队",
|
|
252
262
|
queuedHint: "已加入排队,前序任务完成后将自动开始,可关闭本窗口继续浏览。",
|
|
@@ -432,6 +442,12 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
432
442
|
logOpenFile: "Reveal",
|
|
433
443
|
logOpenFileTip: "Reveal the log file in your system file manager",
|
|
434
444
|
logOpenFileFail: "Could not open; locate the file manually",
|
|
445
|
+
logClearAll: "Clear all logs",
|
|
446
|
+
logClearConfirmTitle: "Clear all logs?",
|
|
447
|
+
logClearConfirmDesc: "All log entries will be deleted. This cannot be undone.",
|
|
448
|
+
logClearing: "Clearing…",
|
|
449
|
+
logClearAllTip: "Delete all log entries",
|
|
450
|
+
logClearFailed: "Failed to clear; try again",
|
|
435
451
|
logPathSettingTitle: "Log Location",
|
|
436
452
|
logPathSettingDesc: "Stored in the host config directory by default — set a directory or a .log file path to store elsewhere",
|
|
437
453
|
logPathPlaceholder: "Leave empty for default",
|
|
@@ -527,7 +543,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
527
543
|
restartNow: "Restart now",
|
|
528
544
|
restartLater: "Later",
|
|
529
545
|
restarting: "Restarting…",
|
|
530
|
-
restartHint: "Some plugins (such as plugin markets / top-level bundles) only take effect after a restart.",
|
|
546
|
+
restartHint: "Restarting interrupts any in-progress install / uninstall task — its progress will be lost. Some plugins (such as plugin markets / top-level bundles) only take effect after a restart.",
|
|
531
547
|
done: "Done",
|
|
532
548
|
restartPendingHint: "Installed — takes effect after restart",
|
|
533
549
|
restartPendingHintUninstall: "Removed — cleaned up after restart",
|
|
@@ -538,7 +554,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
538
554
|
notificationsDesc: "Every install, remove and update notice is logged here — even if you missed the prompt, you can always check back.",
|
|
539
555
|
notificationsEmpty: "No notifications yet",
|
|
540
556
|
notificationsClear: "Clear notifications",
|
|
557
|
+
notificationsClearConfirmTitle: "Clear all notifications?",
|
|
558
|
+
notificationsClearConfirmDesc: "All notification records will be deleted. This cannot be undone.",
|
|
541
559
|
removeNotification: "Remove this notification",
|
|
560
|
+
removeNotificationConfirmTitle: "Remove this notification?",
|
|
561
|
+
removeNotificationConfirmDesc: "This notification will be removed. This cannot be undone.",
|
|
542
562
|
queuedTitle: "Queued…",
|
|
543
563
|
queuedUninstallTitle: "Queued for removal…",
|
|
544
564
|
queuedHint: "Queued — starts automatically after earlier tasks finish. You may close this window.",
|
|
@@ -606,47 +626,52 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
606
626
|
tag.textContent = css$11;
|
|
607
627
|
document.head.appendChild(tag);
|
|
608
628
|
}
|
|
629
|
+
const cssRegistry$11 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
630
|
+
if (!cssRegistry$11.some((e) => e.tagId === tagId$11)) cssRegistry$11.push({
|
|
631
|
+
tagId: tagId$11,
|
|
632
|
+
css: css$11
|
|
633
|
+
});
|
|
609
634
|
var Header_module_css_default = {
|
|
610
|
-
"
|
|
611
|
-
"githubLink": "qikqja_githubLink",
|
|
612
|
-
"headerTitleRow": "qikqja_headerTitleRow",
|
|
613
|
-
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
635
|
+
"tabsRow": "qikqja_tabsRow",
|
|
614
636
|
"copyIcon": "qikqja_copyIcon",
|
|
615
|
-
"logoIcon": "qikqja_logoIcon",
|
|
616
|
-
"sortGroup": "qikqja_sortGroup",
|
|
617
|
-
"segGroup": "qikqja_segGroup",
|
|
618
|
-
"segBtn": "qikqja_segBtn",
|
|
619
|
-
"tabActive": "qikqja_tabActive",
|
|
620
|
-
"controls": "qikqja_controls",
|
|
621
|
-
"tab": "qikqja_tab",
|
|
622
|
-
"adBadge": "qikqja_adBadge",
|
|
623
637
|
"segBtnActive": "qikqja_segBtnActive",
|
|
638
|
+
"segBtn": "qikqja_segBtn",
|
|
639
|
+
"headerRight": "qikqja_headerRight",
|
|
640
|
+
"sortGroup": "qikqja_sortGroup",
|
|
641
|
+
"versionBtn": "qikqja_versionBtn",
|
|
624
642
|
"aboutBtn": "qikqja_aboutBtn",
|
|
625
|
-
"
|
|
626
|
-
"tabs": "qikqja_tabs",
|
|
627
|
-
"version": "qikqja_version",
|
|
643
|
+
"controls": "qikqja_controls",
|
|
628
644
|
"taglineLink": "qikqja_taglineLink",
|
|
629
|
-
"headerRight": "qikqja_headerRight",
|
|
630
|
-
"resultCount": "qikqja_resultCount",
|
|
631
|
-
"adArrow": "qikqja_adArrow",
|
|
632
|
-
"tabsRow": "qikqja_tabsRow",
|
|
633
645
|
"tagline": "qikqja_tagline",
|
|
634
|
-
"
|
|
646
|
+
"resultSeg": "qikqja_resultSeg",
|
|
647
|
+
"tabActive": "qikqja_tabActive",
|
|
648
|
+
"segGroup": "qikqja_segGroup",
|
|
649
|
+
"brandTitle": "qikqja_brandTitle",
|
|
650
|
+
"hubUpdateBadge": "qikqja_hubUpdateBadge",
|
|
651
|
+
"header": "qikqja_header",
|
|
652
|
+
"logoIcon": "qikqja_logoIcon",
|
|
653
|
+
"adArrow": "qikqja_adArrow",
|
|
654
|
+
"tab": "qikqja_tab",
|
|
635
655
|
"tabCount": "qikqja_tabCount",
|
|
636
|
-
"
|
|
656
|
+
"langBtn": "qikqja_langBtn",
|
|
657
|
+
"resultCount": "qikqja_resultCount",
|
|
658
|
+
"adText": "qikqja_adText",
|
|
659
|
+
"githubLink": "qikqja_githubLink",
|
|
660
|
+
"segLabel": "qikqja_segLabel",
|
|
661
|
+
"version": "qikqja_version",
|
|
662
|
+
"root": "qikqja_root",
|
|
663
|
+
"githubIcon": "qikqja_githubIcon",
|
|
664
|
+
"headerTitleRow": "qikqja_headerTitleRow",
|
|
665
|
+
"adBanner": "qikqja_adBanner",
|
|
666
|
+
"adBadge": "qikqja_adBadge",
|
|
637
667
|
"searchRow": "qikqja_searchRow",
|
|
638
668
|
"search": "qikqja_search",
|
|
639
|
-
"adBanner": "qikqja_adBanner",
|
|
640
669
|
"title": "qikqja_title",
|
|
641
|
-
"
|
|
642
|
-
"root": "qikqja_root",
|
|
643
|
-
"githubIcon": "qikqja_githubIcon",
|
|
644
|
-
"segLabel": "qikqja_segLabel",
|
|
645
|
-
"langBtn": "qikqja_langBtn"
|
|
670
|
+
"tabs": "qikqja_tabs"
|
|
646
671
|
};
|
|
647
672
|
//#endregion
|
|
648
673
|
//#region \0dsh-css:src/client/styles/Modal.module.css.mjs
|
|
649
|
-
const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:420px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:780px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_aboutModal{width:460px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:520px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:480px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
|
|
674
|
+
const css$10 = ".BiQ1zG_overlay{z-index:998;-webkit-user-select:none;user-select:none;background:#00000061;justify-content:center;align-items:center;animation:.16s ease-out BiQ1zG_overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.BiQ1zG_modal,.BiQ1zG_errorModal{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:10px;flex-direction:column;gap:10px;width:420px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);padding:14px 16px;animation:.18s ease-out BiQ1zG_modalIn;display:flex;box-shadow:0 12px 40px #0000003d}.BiQ1zG_errorModal{width:640px;max-width:calc(100vw - 48px)}.BiQ1zG_modalWide{width:560px;max-width:calc(100vw - 48px)}.BiQ1zG_helpModal{width:720px;max-width:calc(100vw - 48px)}.BiQ1zG_logModal{width:780px;max-width:calc(100vw - 48px);height:min(540px,100vh - 64px)}.BiQ1zG_modalHead{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.BiQ1zG_modalTitle{color:var(--hub-text-primary);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_modalTitleBusy{color:var(--hub-brand)}.BiQ1zG_modalTitleQueued{color:var(--hub-warning)}.BiQ1zG_modalClose{width:24px;height:24px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.BiQ1zG_modalClose:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalCloseIcon{flex-shrink:0;width:14px;height:14px}.BiQ1zG_confirmIconWrap{justify-content:center;padding:2px 0 6px;display:flex}.BiQ1zG_confirmIcon{background:var(--hub-brand);border-radius:50%;flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 4px 12px #4f6ef747}.BiQ1zG_confirmIconDanger{background:var(--hub-danger);box-shadow:0 4px 12px #d1242f4d}.BiQ1zG_dangerConfirm{color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:background-color .12s,border-color .12s}.BiQ1zG_dangerConfirm:hover:not(:disabled){background:var(--hub-danger-hover);border-color:var(--hub-danger-hover)}.BiQ1zG_dangerConfirm:disabled{opacity:.55;cursor:default}.BiQ1zG_confirmPrimary{color:#fff;background:var(--hub-brand);border:1px solid var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;height:28px;padding:0 14px;font-size:12px;font-weight:600;transition:filter .12s}.BiQ1zG_confirmPrimary:hover:not(:disabled){filter:brightness(1.08)}.BiQ1zG_confirmPrimary:disabled{opacity:.55;cursor:default}.BiQ1zG_modalDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_trustHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_cliOnlyHint{color:var(--hub-text-secondary);background:var(--hub-bg-hover);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_failedCopyHint{color:var(--hub-danger-text);background:var(--hub-danger-tint);border:1px solid var(--hub-danger-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;font-weight:500;line-height:18px}.BiQ1zG_modalRow{align-items:baseline;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.BiQ1zG_modalLabel{min-width:64px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_modalValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);font-weight:500;overflow:hidden}.BiQ1zG_modalLink{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex;overflow:hidden}.BiQ1zG_modalLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_linkIcon{flex-shrink:0}.BiQ1zG_modalCmd{color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 6px 6px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_modalCmd:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_modalCmdText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.BiQ1zG_modalCmdCopy{color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_modalCmdCopy:hover{color:var(--hub-brand-hover);background:var(--hub-bg-2)}.BiQ1zG_modalActions{justify-content:flex-end;align-items:center;gap:8px;margin-top:2px;display:flex}.BiQ1zG_modalBody{flex-direction:column;flex:auto;gap:10px;min-height:0;display:flex;overflow-y:auto}.BiQ1zG_toast{z-index:1000;background:var(--hub-btn-fill);color:var(--hub-text-on-fill);pointer-events:none;white-space:nowrap;border:none;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out BiQ1zG_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes BiQ1zG_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.BiQ1zG_toastFail{background:var(--hub-danger);color:#fff;border-color:#ffffff3d}.BiQ1zG_queueSection{flex-direction:column;gap:6px;display:flex}.BiQ1zG_queueSectionTitle{color:var(--hub-text-secondary);padding:4px 2px 0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_pendingRowStatus{color:var(--hub-warn);flex-shrink:0;font-weight:500}.BiQ1zG_pendingRowActions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.BiQ1zG_queueRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:5px;padding:8px 10px;font-size:12px;line-height:18px;transition:background .12s;display:flex}.BiQ1zG_queueRow:hover{background:var(--hub-brand-tint)}.BiQ1zG_queueRowHead{align-items:center;gap:10px;display:flex}.BiQ1zG_queueRowTarget{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-text-primary);flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.BiQ1zG_queueRowDesc{color:var(--hub-text-tertiary);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.BiQ1zG_queueRowBody{align-items:center;gap:8px;display:flex}.BiQ1zG_queueRowStatus{color:var(--hub-brand);flex-shrink:0;font-weight:500}.BiQ1zG_queueRowTrack{flex:1;min-width:0}.BiQ1zG_queueRowPct{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.BiQ1zG_stripCancel{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 10px;font-size:12px;line-height:18px;transition:background .12s,color .12s}.BiQ1zG_stripCancel:hover{background:var(--hub-danger-tint);color:var(--hub-danger-text)}.BiQ1zG_stripCancel:disabled{opacity:.45;cursor:default}.BiQ1zG_queuedHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:5px 10px;font-size:12px;line-height:18px}.BiQ1zG_errorTitle{color:var(--hub-danger-text);font-size:14px;font-weight:600;line-height:20px}.BiQ1zG_errorBox{border:1px solid var(--hub-danger-border);background:var(--hub-danger-tint-weak);max-height:240px;color:var(--hub-text-primary);white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:6px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:17px;overflow:auto}.BiQ1zG_errorCopySoft{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_errorCopySoft:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_errorHint{color:var(--hub-text-tertiary);font-size:12px;line-height:18px}.BiQ1zG_modalCancel,.BiQ1zG_modalCopy{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_modalCancel:hover,.BiQ1zG_modalCopy:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_modalInstall{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_modalInstall:hover{background:var(--hub-btn-hover)}.BiQ1zG_modalCopy:disabled,.BiQ1zG_modalInstall:disabled,.BiQ1zG_modalCancel:disabled,.BiQ1zG_modalClose:disabled,.BiQ1zG_uninstallConfirm:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_uninstallConfirm{color:#fff;background:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_uninstallConfirm:hover{background:var(--hub-danger-hover)}.BiQ1zG_result{text-align:center;flex-direction:column;align-items:center;gap:5px;padding:10px 0 2px;display:flex}.BiQ1zG_resultCheck{background:var(--hub-success-tint);width:40px;height:40px;color:var(--hub-success);border-radius:50%;justify-content:center;align-items:center;margin-bottom:3px;display:inline-flex}.BiQ1zG_resultCheckIcon{flex-shrink:0;width:20px;height:20px}.BiQ1zG_resultTitle{color:var(--hub-text-primary);font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_resultDesc{color:var(--hub-text-secondary);font-size:12px;line-height:18px}.BiQ1zG_resultRestarting{color:var(--hub-text-tertiary);padding:12px 0 6px;font-size:12px;line-height:18px}.BiQ1zG_restartLater{color:var(--hub-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_restartLater:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}.BiQ1zG_restartNow{color:var(--hub-text-on-fill);background:var(--hub-btn-fill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNow:hover{background:var(--hub-btn-hover)}.BiQ1zG_restartNow:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_restartNowWarning{color:#fff;background:var(--hub-warning);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;line-height:18px;transition:background .12s}.BiQ1zG_restartNowWarning:hover{background:var(--hub-warning-hover)}.BiQ1zG_restartNowWarning:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.BiQ1zG_result .BiQ1zG_modalActions{justify-content:center;gap:10px;margin-top:0;padding:6px 0 2px}.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartLater,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNow,.BiQ1zG_result .BiQ1zG_modalActions .BiQ1zG_restartNowWarning{min-width:100px}.BiQ1zG_progress{margin:10px 0 2px}.BiQ1zG_progressHead{justify-content:flex-end;align-items:center;margin-bottom:3px;display:flex}.BiQ1zG_progressText{color:var(--hub-text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:14px}.BiQ1zG_progressTrack{background:var(--hub-border-2);border-radius:2px;height:4px;overflow:hidden}.BiQ1zG_progressFill{background:var(--hub-brand);border-radius:2px;height:100%;transition:width .32s}.BiQ1zG_progressFillFail{background:var(--hub-danger)}@keyframes BiQ1zG_overlayIn{0%{opacity:0}to{opacity:1}}@keyframes BiQ1zG_modalIn{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.BiQ1zG_failList{flex-direction:column;gap:12px;padding-right:2px;display:flex}.BiQ1zG_failRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.BiQ1zG_failHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeList{flex-direction:column;gap:10px;padding-right:2px;display:flex}.BiQ1zG_noticeRow{border:1px solid var(--hub-border-2);background:var(--hub-bg-2);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;display:flex}.BiQ1zG_noticeRowMain{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.BiQ1zG_noticeBadgeOk,.BiQ1zG_noticeBadgeFail{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;box-shadow:0 2px 6px #0000002e}.BiQ1zG_noticeBadgeOk{background:var(--hub-success)}.BiQ1zG_noticeBadgeFail{background:var(--hub-danger)}.BiQ1zG_noticeBadgeIcon{flex-shrink:0;width:12px;height:12px}.BiQ1zG_noticeMain{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeHead{align-items:center;gap:8px;min-width:0;display:flex}.BiQ1zG_noticeTextOk{color:var(--hub-success);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeTextFail{color:var(--hub-danger-text);flex-shrink:0;font-size:12px;font-weight:600;line-height:18px}.BiQ1zG_noticeFoot{justify-content:flex-end;align-items:center;display:flex}.BiQ1zG_noticeTime{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px;line-height:16px}.BiQ1zG_noticeRemove{width:22px;height:22px;color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_noticeRemove:hover{color:var(--hub-danger-text);background:var(--hub-danger-tint)}.BiQ1zG_noticeRowOk .BiQ1zG_noticeRemove{margin-left:0}.BiQ1zG_noticeRowOk .BiQ1zG_noticeTime{margin-left:auto}.BiQ1zG_noticeRowUpdate{cursor:pointer;transition:border-color .12s,background .12s}.BiQ1zG_noticeRowUpdate:hover{border-color:var(--hub-brand);background:var(--hub-brand-tint)}.BiQ1zG_noticeVersion{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border);font-variant-numeric:tabular-nums;border-radius:5px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.BiQ1zG_noticeUpdateGo{color:#fff;background:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;border-radius:5px;flex-shrink:0;margin-left:2px;padding:2px 8px;font-size:11px;font-weight:600;line-height:16px;transition:background .12s}.BiQ1zG_noticeUpdateGo:hover{background:var(--hub-brand-hover)}.BiQ1zG_noticeIgnore{color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:5px;flex-shrink:0;margin-left:2px;padding:1px 8px;font-size:11px;font-weight:500;line-height:16px;transition:color .12s,border-color .12s,background .12s}.BiQ1zG_noticeIgnore:hover{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKind{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}.BiQ1zG_failKindInstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}.BiQ1zG_failKindUninstall{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}.BiQ1zG_failRepo{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:18px;text-decoration:none;overflow:hidden}.BiQ1zG_failRepo:hover{text-decoration:underline}.BiQ1zG_failCopy{color:var(--hub-text-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;transition:color .12s,background .12s;display:inline-flex}.BiQ1zG_failCopy:hover{color:var(--hub-text-secondary);background:var(--hub-bg-2)}.BiQ1zG_failEmpty{text-align:center;color:var(--hub-text-tertiary);padding:24px 0;font-size:12px;line-height:18px}.BiQ1zG_failClear{color:var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;line-height:18px;transition:color .12s,background .12s}.BiQ1zG_failClear:hover{color:#fff;background:var(--hub-danger)}.BiQ1zG_failBigIssue{box-sizing:border-box;text-align:center;color:#fff;background:var(--hub-danger);border:1px solid var(--hub-danger);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin-top:4px;padding:3px 16px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;transition:background .12s,border-color .12s,box-shadow .12s;display:block}.BiQ1zG_failBigIssue:hover{background:var(--hub-danger-hover);border-color:var(--hub-danger-hover);box-shadow:0 3px 10px #d1242f59}.BiQ1zG_failPrepareHint{color:var(--hub-warning);background:var(--hub-warning-tint);border:1px solid var(--hub-warning-border);border-radius:6px;margin-top:6px;padding:8px 12px;font-size:12px;line-height:18px}.BiQ1zG_aboutModal{width:460px;max-width:calc(100vw - 48px)}.BiQ1zG_aboutContent{min-height:0;max-height:340px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_aboutContent>:first-child{margin-top:0}.BiQ1zG_aboutContent>:last-child{margin-bottom:0}.BiQ1zG_aboutContent h2,.BiQ1zG_aboutContent h3,.BiQ1zG_aboutContent h4,.BiQ1zG_aboutContent h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_aboutContent h2{font-size:14px}.BiQ1zG_aboutContent p{margin:4px 0}.BiQ1zG_aboutContent ul,.BiQ1zG_aboutContent ol{margin:4px 0;padding-left:18px}.BiQ1zG_aboutContent li{margin:2px 0}.BiQ1zG_aboutContent code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_aboutContent pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_aboutContent pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_aboutContent blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_aboutContent a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_aboutContent a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_aboutContent img{border-radius:8px;max-width:100%;max-height:220px;margin:8px auto;display:block;box-shadow:0 2px 8px #0000001f}.BiQ1zG_aboutMeta{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}.BiQ1zG_hubUpdateModal{width:520px;max-width:calc(100vw - 48px)}.BiQ1zG_hubUpdateMeta{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;line-height:18px;display:flex}.BiQ1zG_hubUpdateMetaItem{color:var(--hub-text-tertiary)}.BiQ1zG_hubUpdateNotes{min-height:0;max-height:300px;color:var(--hub-text-secondary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:8px;flex:auto;padding:10px 12px;font-size:12px;line-height:18px;overflow-y:auto}.BiQ1zG_hubUpdateNotes>:first-child{margin-top:0}.BiQ1zG_hubUpdateNotes>:last-child{margin-bottom:0}.BiQ1zG_hubUpdateNotes h2,.BiQ1zG_hubUpdateNotes h3,.BiQ1zG_hubUpdateNotes h4,.BiQ1zG_hubUpdateNotes h5{color:var(--hub-text-primary);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:20px}.BiQ1zG_hubUpdateNotes h2{font-size:14px}.BiQ1zG_hubUpdateNotes p{margin:4px 0}.BiQ1zG_hubUpdateNotes ul,.BiQ1zG_hubUpdateNotes ol{margin:4px 0;padding-left:18px}.BiQ1zG_hubUpdateNotes li{margin:2px 0}.BiQ1zG_hubUpdateNotes code{background:var(--hub-bg-hover);color:var(--hub-text-primary);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.BiQ1zG_hubUpdateNotes pre{background:var(--hub-bg-1);border:1px solid var(--hub-border-2);border-radius:6px;margin:6px 0;padding:8px 10px;overflow-x:auto}.BiQ1zG_hubUpdateNotes pre code{background:0 0;border-radius:0;padding:0}.BiQ1zG_hubUpdateNotes blockquote{border-left:3px solid var(--hub-brand);background:var(--hub-bg-hover);color:var(--hub-text-tertiary);border-radius:0 6px 6px 0;margin:6px 0;padding:2px 10px}.BiQ1zG_hubUpdateNotes a{color:var(--hub-brand);text-decoration:none}.BiQ1zG_hubUpdateNotes a:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailModal{width:480px;max-width:calc(100vw - 48px)}.BiQ1zG_detailUpdateHint{color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);border-radius:6px;padding:6px 10px;font-size:12px;line-height:18px}.BiQ1zG_detailGrid{flex-direction:column;gap:6px;display:flex}.BiQ1zG_detailRow{align-items:baseline;gap:10px;min-width:0;font-size:12px;line-height:20px;display:flex}.BiQ1zG_detailLabel{text-align:right;width:76px;color:var(--hub-text-tertiary);flex-shrink:0}.BiQ1zG_detailValue{min-width:0;color:var(--hub-text-primary);flex-wrap:wrap;flex:auto;align-items:baseline;gap:4px 6px;font-weight:500;display:flex}.BiQ1zG_detailMono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500}.BiQ1zG_detailArrow{color:var(--hub-text-tertiary);align-items:baseline;gap:4px;display:inline-flex}.BiQ1zG_detailDim{color:var(--hub-text-tertiary);font-size:11px;font-weight:400}.BiQ1zG_detailLink{min-width:0;color:var(--hub-brand);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-weight:500;text-decoration:none;transition:color .12s;display:inline-flex}.BiQ1zG_detailLink:hover{color:var(--hub-brand-hover);text-decoration:underline}.BiQ1zG_detailStars{color:#b45309;font-weight:600}.BiQ1zG_detailPath{min-width:0;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;flex:auto;justify-content:space-between;align-items:center;gap:6px;padding:3px 3px 3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:18px;transition:border-color .12s,background .12s;display:flex}.BiQ1zG_detailPath:hover{border-color:var(--hub-border-ghost);background:var(--hub-bg-3)}.BiQ1zG_detailPathText{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0;overflow:hidden}.BiQ1zG_detailPathActions{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.BiQ1zG_detailPathBtn{width:28px;height:28px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.BiQ1zG_detailPathBtn svg{width:15px;height:15px}.BiQ1zG_detailPathBtn:hover{color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}.BiQ1zG_detailStatusRunning,.BiQ1zG_detailStatusPending{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.BiQ1zG_detailStatusRunning{background:var(--hub-success)}.BiQ1zG_detailStatusPending{background:var(--hub-warning)}.BiQ1zG_detailStatusText{font-weight:500}";
|
|
650
675
|
const tagId$10 = "dsh-plugin/Modal.module.css";
|
|
651
676
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
652
677
|
const tag = document.createElement("style");
|
|
@@ -655,130 +680,140 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
655
680
|
tag.textContent = css$10;
|
|
656
681
|
document.head.appendChild(tag);
|
|
657
682
|
}
|
|
683
|
+
const cssRegistry$10 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
684
|
+
if (!cssRegistry$10.some((e) => e.tagId === tagId$10)) cssRegistry$10.push({
|
|
685
|
+
tagId: tagId$10,
|
|
686
|
+
css: css$10
|
|
687
|
+
});
|
|
658
688
|
var Modal_module_css_default = {
|
|
659
|
-
"
|
|
660
|
-
"
|
|
661
|
-
"
|
|
662
|
-
"
|
|
663
|
-
"
|
|
664
|
-
"
|
|
665
|
-
"
|
|
666
|
-
"
|
|
689
|
+
"queueSection": "BiQ1zG_queueSection",
|
|
690
|
+
"modalDesc": "BiQ1zG_modalDesc",
|
|
691
|
+
"modalHead": "BiQ1zG_modalHead",
|
|
692
|
+
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
693
|
+
"modalWide": "BiQ1zG_modalWide",
|
|
694
|
+
"errorBox": "BiQ1zG_errorBox",
|
|
695
|
+
"aboutMeta": "BiQ1zG_aboutMeta",
|
|
696
|
+
"modalTitle": "BiQ1zG_modalTitle",
|
|
697
|
+
"queuedHint": "BiQ1zG_queuedHint",
|
|
698
|
+
"linkIcon": "BiQ1zG_linkIcon",
|
|
667
699
|
"noticeBadgeIcon": "BiQ1zG_noticeBadgeIcon",
|
|
668
|
-
"
|
|
669
|
-
"
|
|
670
|
-
"
|
|
671
|
-
"
|
|
700
|
+
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
701
|
+
"logModal": "BiQ1zG_logModal",
|
|
702
|
+
"dangerConfirm": "BiQ1zG_dangerConfirm",
|
|
703
|
+
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
704
|
+
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
705
|
+
"failRepo": "BiQ1zG_failRepo",
|
|
672
706
|
"modalCloseIcon": "BiQ1zG_modalCloseIcon",
|
|
707
|
+
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
708
|
+
"failList": "BiQ1zG_failList",
|
|
709
|
+
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
710
|
+
"noticeTextFail": "BiQ1zG_noticeTextFail",
|
|
711
|
+
"hubUpdateMetaItem": "BiQ1zG_hubUpdateMetaItem",
|
|
712
|
+
"detailLink": "BiQ1zG_detailLink",
|
|
673
713
|
"modalTitleBusy": "BiQ1zG_modalTitleBusy",
|
|
674
|
-
"
|
|
675
|
-
"
|
|
676
|
-
"
|
|
677
|
-
"
|
|
678
|
-
"
|
|
679
|
-
"noticeFoot": "BiQ1zG_noticeFoot",
|
|
680
|
-
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
681
|
-
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
682
|
-
"toastIn": "BiQ1zG_toastIn",
|
|
683
|
-
"aboutModal": "BiQ1zG_aboutModal",
|
|
684
|
-
"noticeList": "BiQ1zG_noticeList",
|
|
685
|
-
"noticeMain": "BiQ1zG_noticeMain",
|
|
686
|
-
"queuedHint": "BiQ1zG_queuedHint",
|
|
687
|
-
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
688
|
-
"failKind": "BiQ1zG_failKind",
|
|
714
|
+
"failKindUninstall": "BiQ1zG_failKindUninstall",
|
|
715
|
+
"pendingRowActions": "BiQ1zG_pendingRowActions",
|
|
716
|
+
"modalCopy": "BiQ1zG_modalCopy",
|
|
717
|
+
"modalRow": "BiQ1zG_modalRow",
|
|
718
|
+
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
689
719
|
"errorModal": "BiQ1zG_errorModal",
|
|
690
|
-
"
|
|
691
|
-
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
692
|
-
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
693
|
-
"overlay": "BiQ1zG_overlay",
|
|
694
|
-
"modalTitle": "BiQ1zG_modalTitle",
|
|
695
|
-
"failList": "BiQ1zG_failList",
|
|
696
|
-
"failRow": "BiQ1zG_failRow",
|
|
697
|
-
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
698
|
-
"resultCheck": "BiQ1zG_resultCheck",
|
|
699
|
-
"queueRow": "BiQ1zG_queueRow",
|
|
700
|
-
"detailGrid": "BiQ1zG_detailGrid",
|
|
701
|
-
"errorHint": "BiQ1zG_errorHint",
|
|
702
|
-
"modalCancel": "BiQ1zG_modalCancel",
|
|
703
|
-
"modalWide": "BiQ1zG_modalWide",
|
|
704
|
-
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
705
|
-
"progressFill": "BiQ1zG_progressFill",
|
|
706
|
-
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
707
|
-
"modalLabel": "BiQ1zG_modalLabel",
|
|
708
|
-
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
720
|
+
"failKind": "BiQ1zG_failKind",
|
|
709
721
|
"detailMono": "BiQ1zG_detailMono",
|
|
722
|
+
"progress": "BiQ1zG_progress",
|
|
710
723
|
"queueRowTarget": "BiQ1zG_queueRowTarget",
|
|
711
|
-
"
|
|
712
|
-
"
|
|
724
|
+
"queueRowStatus": "BiQ1zG_queueRowStatus",
|
|
725
|
+
"overlayIn": "BiQ1zG_overlayIn",
|
|
726
|
+
"overlay": "BiQ1zG_overlay",
|
|
727
|
+
"noticeMain": "BiQ1zG_noticeMain",
|
|
713
728
|
"modalCmdText": "BiQ1zG_modalCmdText",
|
|
714
|
-
"
|
|
715
|
-
"
|
|
729
|
+
"detailDim": "BiQ1zG_detailDim",
|
|
730
|
+
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
731
|
+
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
732
|
+
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
733
|
+
"resultTitle": "BiQ1zG_resultTitle",
|
|
734
|
+
"noticeRemove": "BiQ1zG_noticeRemove",
|
|
735
|
+
"noticeVersion": "BiQ1zG_noticeVersion",
|
|
736
|
+
"detailStatusPending": "BiQ1zG_detailStatusPending",
|
|
737
|
+
"failEmpty": "BiQ1zG_failEmpty",
|
|
738
|
+
"detailStatusRunning": "BiQ1zG_detailStatusRunning",
|
|
739
|
+
"errorHint": "BiQ1zG_errorHint",
|
|
740
|
+
"modalCmdCopy": "BiQ1zG_modalCmdCopy",
|
|
741
|
+
"confirmPrimary": "BiQ1zG_confirmPrimary",
|
|
716
742
|
"queueSectionTitle": "BiQ1zG_queueSectionTitle",
|
|
717
|
-
"
|
|
718
|
-
"
|
|
719
|
-
"
|
|
743
|
+
"failCopy": "BiQ1zG_failCopy",
|
|
744
|
+
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
745
|
+
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
746
|
+
"progressFill": "BiQ1zG_progressFill",
|
|
747
|
+
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
748
|
+
"detailPathActions": "BiQ1zG_detailPathActions",
|
|
749
|
+
"progressFillFail": "BiQ1zG_progressFillFail",
|
|
750
|
+
"failKindInstall": "BiQ1zG_failKindInstall",
|
|
751
|
+
"modalClose": "BiQ1zG_modalClose",
|
|
720
752
|
"noticeTime": "BiQ1zG_noticeTime",
|
|
721
|
-
"
|
|
722
|
-
"
|
|
723
|
-
"
|
|
724
|
-
"
|
|
725
|
-
"
|
|
753
|
+
"modalCmd": "BiQ1zG_modalCmd",
|
|
754
|
+
"uninstallConfirm": "BiQ1zG_uninstallConfirm",
|
|
755
|
+
"failClear": "BiQ1zG_failClear",
|
|
756
|
+
"detailLabel": "BiQ1zG_detailLabel",
|
|
757
|
+
"modalLabel": "BiQ1zG_modalLabel",
|
|
758
|
+
"confirmIconDanger": "BiQ1zG_confirmIconDanger",
|
|
726
759
|
"toast": "BiQ1zG_toast",
|
|
727
|
-
"
|
|
728
|
-
"
|
|
729
|
-
"
|
|
760
|
+
"result": "BiQ1zG_result",
|
|
761
|
+
"resultRestarting": "BiQ1zG_resultRestarting",
|
|
762
|
+
"failRow": "BiQ1zG_failRow",
|
|
763
|
+
"toastFail": "BiQ1zG_toastFail",
|
|
764
|
+
"modalLink": "BiQ1zG_modalLink",
|
|
765
|
+
"modalInstall": "BiQ1zG_modalInstall",
|
|
766
|
+
"progressHead": "BiQ1zG_progressHead",
|
|
767
|
+
"restartNow": "BiQ1zG_restartNow",
|
|
768
|
+
"noticeTextOk": "BiQ1zG_noticeTextOk",
|
|
730
769
|
"detailStars": "BiQ1zG_detailStars",
|
|
731
|
-
"
|
|
732
|
-
"
|
|
733
|
-
"
|
|
770
|
+
"queueRow": "BiQ1zG_queueRow",
|
|
771
|
+
"aboutContent": "BiQ1zG_aboutContent",
|
|
772
|
+
"failedCopyHint": "BiQ1zG_failedCopyHint",
|
|
773
|
+
"progressTrack": "BiQ1zG_progressTrack",
|
|
774
|
+
"noticeBadgeOk": "BiQ1zG_noticeBadgeOk",
|
|
775
|
+
"modal": "BiQ1zG_modal",
|
|
776
|
+
"failPrepareHint": "BiQ1zG_failPrepareHint",
|
|
777
|
+
"noticeRowOk": "BiQ1zG_noticeRowOk",
|
|
778
|
+
"restartLater": "BiQ1zG_restartLater",
|
|
779
|
+
"toastIn": "BiQ1zG_toastIn",
|
|
734
780
|
"stripCancel": "BiQ1zG_stripCancel",
|
|
735
|
-
"
|
|
736
|
-
"
|
|
737
|
-
"
|
|
738
|
-
"modalCopy": "BiQ1zG_modalCopy",
|
|
739
|
-
"errorCopySoft": "BiQ1zG_errorCopySoft",
|
|
740
|
-
"detailDim": "BiQ1zG_detailDim",
|
|
741
|
-
"hubUpdateNotes": "BiQ1zG_hubUpdateNotes",
|
|
781
|
+
"modalCancel": "BiQ1zG_modalCancel",
|
|
782
|
+
"queueRowDesc": "BiQ1zG_queueRowDesc",
|
|
783
|
+
"modalBody": "BiQ1zG_modalBody",
|
|
742
784
|
"detailUpdateHint": "BiQ1zG_detailUpdateHint",
|
|
743
|
-
"
|
|
744
|
-
"
|
|
785
|
+
"hubUpdateModal": "BiQ1zG_hubUpdateModal",
|
|
786
|
+
"detailModal": "BiQ1zG_detailModal",
|
|
787
|
+
"detailRow": "BiQ1zG_detailRow",
|
|
788
|
+
"modalActions": "BiQ1zG_modalActions",
|
|
789
|
+
"pendingRowStatus": "BiQ1zG_pendingRowStatus",
|
|
745
790
|
"restartNowWarning": "BiQ1zG_restartNowWarning",
|
|
746
|
-
"
|
|
747
|
-
"
|
|
748
|
-
"noticeBadgeFail": "BiQ1zG_noticeBadgeFail",
|
|
749
|
-
"hubUpdateMeta": "BiQ1zG_hubUpdateMeta",
|
|
750
|
-
"modalClose": "BiQ1zG_modalClose",
|
|
751
|
-
"failRepo": "BiQ1zG_failRepo",
|
|
752
|
-
"failBigIssue": "BiQ1zG_failBigIssue",
|
|
753
|
-
"noticeRowMain": "BiQ1zG_noticeRowMain",
|
|
754
|
-
"noticeIgnore": "BiQ1zG_noticeIgnore",
|
|
755
|
-
"detailLink": "BiQ1zG_detailLink",
|
|
756
|
-
"modalHead": "BiQ1zG_modalHead",
|
|
757
|
-
"restartNow": "BiQ1zG_restartNow",
|
|
758
|
-
"queueRowPct": "BiQ1zG_queueRowPct",
|
|
759
|
-
"detailPathBtn": "BiQ1zG_detailPathBtn",
|
|
760
|
-
"helpModal": "BiQ1zG_helpModal",
|
|
761
|
-
"progress": "BiQ1zG_progress",
|
|
762
|
-
"progressTrack": "BiQ1zG_progressTrack",
|
|
791
|
+
"detailArrow": "BiQ1zG_detailArrow",
|
|
792
|
+
"noticeUpdateGo": "BiQ1zG_noticeUpdateGo",
|
|
763
793
|
"errorTitle": "BiQ1zG_errorTitle",
|
|
764
|
-
"
|
|
765
|
-
"
|
|
766
|
-
"
|
|
767
|
-
"
|
|
768
|
-
"
|
|
769
|
-
"
|
|
794
|
+
"resultCheck": "BiQ1zG_resultCheck",
|
|
795
|
+
"noticeRowUpdate": "BiQ1zG_noticeRowUpdate",
|
|
796
|
+
"detailPath": "BiQ1zG_detailPath",
|
|
797
|
+
"queueRowBody": "BiQ1zG_queueRowBody",
|
|
798
|
+
"aboutModal": "BiQ1zG_aboutModal",
|
|
799
|
+
"detailGrid": "BiQ1zG_detailGrid",
|
|
800
|
+
"detailValue": "BiQ1zG_detailValue",
|
|
801
|
+
"helpModal": "BiQ1zG_helpModal",
|
|
802
|
+
"confirmIcon": "BiQ1zG_confirmIcon",
|
|
803
|
+
"confirmIconWrap": "BiQ1zG_confirmIconWrap",
|
|
804
|
+
"queueRowHead": "BiQ1zG_queueRowHead",
|
|
770
805
|
"noticeHead": "BiQ1zG_noticeHead",
|
|
771
|
-
"
|
|
772
|
-
"
|
|
773
|
-
"failEmpty": "BiQ1zG_failEmpty",
|
|
774
|
-
"aboutContent": "BiQ1zG_aboutContent",
|
|
775
|
-
"modalValue": "BiQ1zG_modalValue",
|
|
776
|
-
"queueRowTrack": "BiQ1zG_queueRowTrack",
|
|
777
|
-
"failCopy": "BiQ1zG_failCopy",
|
|
778
|
-
"resultCheckIcon": "BiQ1zG_resultCheckIcon",
|
|
779
|
-
"modalTitleQueued": "BiQ1zG_modalTitleQueued",
|
|
806
|
+
"detailPathText": "BiQ1zG_detailPathText",
|
|
807
|
+
"detailStatusText": "BiQ1zG_detailStatusText",
|
|
780
808
|
"modalIn": "BiQ1zG_modalIn",
|
|
781
|
-
"
|
|
809
|
+
"progressText": "BiQ1zG_progressText",
|
|
810
|
+
"modalValue": "BiQ1zG_modalValue",
|
|
811
|
+
"failHead": "BiQ1zG_failHead",
|
|
812
|
+
"noticeRow": "BiQ1zG_noticeRow",
|
|
813
|
+
"noticeList": "BiQ1zG_noticeList",
|
|
814
|
+
"resultDesc": "BiQ1zG_resultDesc",
|
|
815
|
+
"cliOnlyHint": "BiQ1zG_cliOnlyHint",
|
|
816
|
+
"trustHint": "BiQ1zG_trustHint"
|
|
782
817
|
};
|
|
783
818
|
//#endregion
|
|
784
819
|
//#region src/client/logic/install-command.ts
|
|
@@ -848,7 +883,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
848
883
|
* tsdown 构建时用 define 把 __PLUGIN_VERSION__ 替换成 package.json 的版本号;
|
|
849
884
|
* node --test 直接 import 本模块时该标识符不存在,typeof 守卫兜底为空串。
|
|
850
885
|
*/
|
|
851
|
-
const PLUGIN_VERSION = "1.3.
|
|
886
|
+
const PLUGIN_VERSION = "1.3.3";
|
|
852
887
|
const CATEGORY_ORDER = [
|
|
853
888
|
"interface",
|
|
854
889
|
"session",
|
|
@@ -966,6 +1001,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
966
1001
|
"sortNewest"
|
|
967
1002
|
];
|
|
968
1003
|
//#endregion
|
|
1004
|
+
//#region src/client/logic/ensure-plugin-css.ts
|
|
1005
|
+
/** Re-inject any registered stylesheet that is missing from the DOM. Idempotent. */
|
|
1006
|
+
function ensurePluginCss() {
|
|
1007
|
+
if (typeof document === "undefined") return;
|
|
1008
|
+
const registry = window.__DSH_PLUGIN_CSS__;
|
|
1009
|
+
if (!registry || registry.length === 0) return;
|
|
1010
|
+
for (const { tagId, css } of registry) {
|
|
1011
|
+
const selector = "style[data-plugin-css=" + JSON.stringify(tagId) + "]";
|
|
1012
|
+
if (document.querySelector(selector) !== null) continue;
|
|
1013
|
+
const tag = document.createElement("style");
|
|
1014
|
+
tag.dataset.plugin = "dsh-plugin";
|
|
1015
|
+
tag.dataset.pluginCss = tagId;
|
|
1016
|
+
tag.textContent = css;
|
|
1017
|
+
document.head.appendChild(tag);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
//#endregion
|
|
969
1021
|
//#region src/client/data/host.ts
|
|
970
1022
|
/** 当前 profile 已安装插件表(npm 包名 -> manifest spec)+ 安装时记录的目录信号 + 安装路径 + 运行状态。 */
|
|
971
1023
|
async function fetchInstalled() {
|
|
@@ -1074,19 +1126,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1074
1126
|
const PROXY_BASE = "/dsh-plugin-hub/catalog";
|
|
1075
1127
|
const PLUGINS_URL = (lang) => `${PROXY_BASE}?lang=${lang}`;
|
|
1076
1128
|
const STATS_URL = `${PROXY_BASE}?stats=1`;
|
|
1077
|
-
async function fetchJson(url) {
|
|
1078
|
-
const res = await fetch(url, {
|
|
1129
|
+
async function fetchJson(url, signal) {
|
|
1130
|
+
const res = await fetch(url, {
|
|
1131
|
+
cache: "no-store",
|
|
1132
|
+
signal
|
|
1133
|
+
});
|
|
1079
1134
|
if (!res.ok) throw new Error(String(res.status));
|
|
1080
1135
|
return res.json();
|
|
1081
1136
|
}
|
|
1082
|
-
/** 目录插件列表(在线 API 已只返回 verified;过滤与排序由上层负责)。
|
|
1083
|
-
|
|
1084
|
-
|
|
1137
|
+
/** 目录插件列表(在线 API 已只返回 verified;过滤与排序由上层负责)。
|
|
1138
|
+
* signal 可选:宿主重启/代理抖动导致请求挂起时,上层可中止旧请求释放连接。 */
|
|
1139
|
+
async function fetchCatalog(lang, signal) {
|
|
1140
|
+
const data = await fetchJson(PLUGINS_URL(lang), signal);
|
|
1085
1141
|
return (Array.isArray(data) ? data : []).map((item) => normalize(item));
|
|
1086
1142
|
}
|
|
1087
1143
|
/** 收录/精选统计(/api/stats.json);字段不完整返回 null。 */
|
|
1088
|
-
async function fetchStats() {
|
|
1089
|
-
const s = await fetchJson(STATS_URL);
|
|
1144
|
+
async function fetchStats(signal) {
|
|
1145
|
+
const s = await fetchJson(STATS_URL, signal);
|
|
1090
1146
|
if (s && typeof s.total === "number" && typeof s.verified === "number") return {
|
|
1091
1147
|
total: s.total,
|
|
1092
1148
|
verified: s.verified
|
|
@@ -1320,6 +1376,14 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1320
1376
|
const [sort, setSort] = (0, react.useState)("sortStars");
|
|
1321
1377
|
/** 当前排序方向:点同一个排序按钮切换 正序/倒序;点新排序用该排序的默认方向(与已安装视图一致) */
|
|
1322
1378
|
const [sortDir, setSortDir] = (0, react.useState)("desc");
|
|
1379
|
+
/** 目录加载「超时自动强制刷新」重试计数:宿主重启/代理未就绪时请求可能长时间挂起,
|
|
1380
|
+
* 界面停在「正在加载插件数据…」假死 —— 超时自动重拉,最多自动重试 2 次后转失败态;
|
|
1381
|
+
* 用户手动刷新(reload)时清零重新计数。 */
|
|
1382
|
+
const loadRetriesRef = (0, react.useRef)(0);
|
|
1383
|
+
/** 目录加载超时阈值:超过即判定挂起,强制刷新一次(服务端代理 curl 上限 20s,客户端 12s 先兜底) */
|
|
1384
|
+
const LOAD_TIMEOUT_MS = 12e3;
|
|
1385
|
+
/** 挂起后最多自动重试次数:避免代理持续不通时无限循环刷新(每次重试仍 12s,2 次后转失败界面可手动重试) */
|
|
1386
|
+
const MAX_LOAD_RETRIES = 2;
|
|
1323
1387
|
/** 点击排序按钮:同一按钮切换正/倒序,新按钮用默认方向 */
|
|
1324
1388
|
function toggleSort(key) {
|
|
1325
1389
|
if (key === sort) setSortDir((d) => d === "asc" ? "desc" : "asc");
|
|
@@ -1356,13 +1420,16 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1356
1420
|
const [hubAboutInfo, setHubAboutInfo] = (0, react.useState)(null);
|
|
1357
1421
|
(0, react.useEffect)(() => {
|
|
1358
1422
|
let cancelled = false;
|
|
1423
|
+
let settled = false;
|
|
1424
|
+
const controller = new AbortController();
|
|
1359
1425
|
setPlugins(null);
|
|
1360
1426
|
setHubPlugin(null);
|
|
1361
1427
|
setStats(null);
|
|
1362
1428
|
setFailed(false);
|
|
1363
|
-
const load = () => Promise.all([fetchCatalog(lang), fetchStats()]);
|
|
1429
|
+
const load = () => Promise.all([fetchCatalog(lang, controller.signal), fetchStats(controller.signal)]);
|
|
1364
1430
|
load().then(([list, stats]) => {
|
|
1365
1431
|
if (cancelled) return;
|
|
1432
|
+
settled = true;
|
|
1366
1433
|
const hadSelf = list.some((p) => p.source?.repo === SELF_REPO);
|
|
1367
1434
|
setHubPlugin(list.find((p) => p.source?.repo === SELF_REPO) ?? null);
|
|
1368
1435
|
setPlugins(list.filter((p) => p.compatibility?.status === "verified" && p.source?.repo !== SELF_REPO));
|
|
@@ -1374,10 +1441,21 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1374
1441
|
verified: stats.verified
|
|
1375
1442
|
});
|
|
1376
1443
|
}).catch(() => {
|
|
1377
|
-
if (
|
|
1444
|
+
if (cancelled) return;
|
|
1445
|
+
settled = true;
|
|
1446
|
+
setFailed(true);
|
|
1378
1447
|
});
|
|
1448
|
+
const timer = window.setTimeout(() => {
|
|
1449
|
+
if (cancelled || settled) return;
|
|
1450
|
+
if (loadRetriesRef.current < MAX_LOAD_RETRIES) {
|
|
1451
|
+
loadRetriesRef.current += 1;
|
|
1452
|
+
setReloadKey((k) => k + 1);
|
|
1453
|
+
} else setFailed(true);
|
|
1454
|
+
}, LOAD_TIMEOUT_MS);
|
|
1379
1455
|
return () => {
|
|
1380
1456
|
cancelled = true;
|
|
1457
|
+
window.clearTimeout(timer);
|
|
1458
|
+
controller.abort();
|
|
1381
1459
|
};
|
|
1382
1460
|
}, [reloadKey, lang]);
|
|
1383
1461
|
/** 刷新当前 profile 已安装插件表;宿主未挂本地路由时静默降级为空表。 */
|
|
@@ -1438,7 +1516,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1438
1516
|
*/
|
|
1439
1517
|
const hubHasUpdate = (() => {
|
|
1440
1518
|
if (!hubUpdateInfo) return false;
|
|
1441
|
-
return hubUpdateInfo.version !== "1.3.
|
|
1519
|
+
return hubUpdateInfo.version !== "1.3.3";
|
|
1442
1520
|
})();
|
|
1443
1521
|
(0, react.useMemo)(() => {
|
|
1444
1522
|
if (!plugins) return [];
|
|
@@ -1479,7 +1557,10 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
1479
1557
|
hubPlugin,
|
|
1480
1558
|
stats,
|
|
1481
1559
|
failed,
|
|
1482
|
-
reload: () =>
|
|
1560
|
+
reload: () => {
|
|
1561
|
+
loadRetriesRef.current = 0;
|
|
1562
|
+
setReloadKey((k) => k + 1);
|
|
1563
|
+
},
|
|
1483
1564
|
installed,
|
|
1484
1565
|
installedItems,
|
|
1485
1566
|
installedName,
|
|
@@ -2769,6 +2850,82 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2769
2850
|
strokeLinejoin: "round"
|
|
2770
2851
|
}));
|
|
2771
2852
|
}
|
|
2853
|
+
/** 确认弹窗图标:圆形徽标 + 白色图形 —— 普通确认(安装/更新/重启/忽略)蓝底白问号;
|
|
2854
|
+
* 危险操作(清空/删除/卸载/重置)红底白动作图形。居中放在弹窗标题下方,一眼区分确认类型。 */
|
|
2855
|
+
function ConfirmIcon({ type }) {
|
|
2856
|
+
const danger = type !== "question";
|
|
2857
|
+
const glyphs = type === "trash" ? [
|
|
2858
|
+
(0, react.createElement)("path", {
|
|
2859
|
+
d: "M4.5 6.5h15M9.5 6.5V4.8a1.3 1.3 0 0 1 1.3-1.3h2.4a1.3 1.3 0 0 1 1.3 1.3v1.7",
|
|
2860
|
+
stroke: "#ffffff",
|
|
2861
|
+
strokeWidth: 1.9,
|
|
2862
|
+
strokeLinecap: "round",
|
|
2863
|
+
strokeLinejoin: "round"
|
|
2864
|
+
}),
|
|
2865
|
+
(0, react.createElement)("path", {
|
|
2866
|
+
d: "M6.2 6.5l.7 12.2a1.5 1.5 0 0 0 1.5 1.3h7.2a1.5 1.5 0 0 0 1.5-1.3l.7-12.2",
|
|
2867
|
+
stroke: "#ffffff",
|
|
2868
|
+
strokeWidth: 1.9,
|
|
2869
|
+
strokeLinecap: "round",
|
|
2870
|
+
strokeLinejoin: "round"
|
|
2871
|
+
}),
|
|
2872
|
+
(0, react.createElement)("path", {
|
|
2873
|
+
d: "M10 10.2v6M14 10.2v6",
|
|
2874
|
+
stroke: "#ffffff",
|
|
2875
|
+
strokeWidth: 1.9,
|
|
2876
|
+
strokeLinecap: "round"
|
|
2877
|
+
})
|
|
2878
|
+
] : type === "warning" ? [
|
|
2879
|
+
(0, react.createElement)("path", {
|
|
2880
|
+
d: "M12 4.2l8.5 14.3a1 1 0 0 1-.87 1.5H4.37a1 1 0 0 1-.87-1.5L12 4.2z",
|
|
2881
|
+
stroke: "#ffffff",
|
|
2882
|
+
strokeWidth: 1.9,
|
|
2883
|
+
strokeLinejoin: "round"
|
|
2884
|
+
}),
|
|
2885
|
+
(0, react.createElement)("path", {
|
|
2886
|
+
d: "M12 9.6v4.5",
|
|
2887
|
+
stroke: "#ffffff",
|
|
2888
|
+
strokeWidth: 1.9,
|
|
2889
|
+
strokeLinecap: "round"
|
|
2890
|
+
}),
|
|
2891
|
+
(0, react.createElement)("circle", {
|
|
2892
|
+
cx: 12,
|
|
2893
|
+
cy: 16.7,
|
|
2894
|
+
r: 1.05,
|
|
2895
|
+
fill: "#ffffff"
|
|
2896
|
+
})
|
|
2897
|
+
] : type === "reset" ? [(0, react.createElement)("path", {
|
|
2898
|
+
d: "M4.5 7.8A8.4 8.4 0 1 1 3.6 14.4",
|
|
2899
|
+
stroke: "#ffffff",
|
|
2900
|
+
strokeWidth: 1.9,
|
|
2901
|
+
strokeLinecap: "round"
|
|
2902
|
+
}), (0, react.createElement)("path", {
|
|
2903
|
+
d: "M3.9 3.9v3.9h3.9",
|
|
2904
|
+
stroke: "#ffffff",
|
|
2905
|
+
strokeWidth: 1.9,
|
|
2906
|
+
strokeLinecap: "round",
|
|
2907
|
+
strokeLinejoin: "round"
|
|
2908
|
+
})] : [(0, react.createElement)("path", {
|
|
2909
|
+
d: "M9.5 9.2a2.6 2.6 0 1 1 3.7 2.38c-.84.38-1.2.95-1.2 1.72",
|
|
2910
|
+
stroke: "#ffffff",
|
|
2911
|
+
strokeWidth: 1.9,
|
|
2912
|
+
strokeLinecap: "round"
|
|
2913
|
+
}), (0, react.createElement)("circle", {
|
|
2914
|
+
cx: 12,
|
|
2915
|
+
cy: 16.4,
|
|
2916
|
+
r: 1.1,
|
|
2917
|
+
fill: "#ffffff"
|
|
2918
|
+
})];
|
|
2919
|
+
return (0, react.createElement)("div", {
|
|
2920
|
+
className: danger ? `${Modal_module_css_default.confirmIcon} ${Modal_module_css_default.confirmIconDanger}` : Modal_module_css_default.confirmIcon,
|
|
2921
|
+
"aria-hidden": "true"
|
|
2922
|
+
}, (0, react.createElement)("svg", {
|
|
2923
|
+
viewBox: "0 0 24 24",
|
|
2924
|
+
width: 22,
|
|
2925
|
+
height: 22,
|
|
2926
|
+
fill: "none"
|
|
2927
|
+
}, ...glyphs));
|
|
2928
|
+
}
|
|
2772
2929
|
/** 系统日志图标:文档纸 + 三行文字(stroke 继承 currentColor),设置左侧导航「系统日志」用。 */
|
|
2773
2930
|
function LogsIcon() {
|
|
2774
2931
|
return (0, react.createElement)("svg", {
|
|
@@ -2888,7 +3045,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2888
3045
|
needsRestart,
|
|
2889
3046
|
onRestart,
|
|
2890
3047
|
onClose
|
|
2891
|
-
}) : (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.trustHint }, t("confirmDesc")), (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmPlugin")), (0, react.createElement)("span", {
|
|
3048
|
+
}) : (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, !busy ? (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "question" })) : null, (0, react.createElement)("div", { className: Modal_module_css_default.trustHint }, t("confirmDesc")), (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmPlugin")), (0, react.createElement)("span", {
|
|
2892
3049
|
className: Modal_module_css_default.modalValue,
|
|
2893
3050
|
title: name
|
|
2894
3051
|
}, name)), plugin?.source?.repo ? (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmSource")), (0, react.createElement)("a", {
|
|
@@ -2941,7 +3098,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
2941
3098
|
needsRestart,
|
|
2942
3099
|
onRestart,
|
|
2943
3100
|
onClose
|
|
2944
|
-
}) : (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.modalDesc }, t("uninstallDesc")), (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmPlugin")), (0, react.createElement)("span", {
|
|
3101
|
+
}) : (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, !busy ? (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "trash" })) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalDesc }, t("uninstallDesc")), (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmPlugin")), (0, react.createElement)("span", {
|
|
2945
3102
|
className: Modal_module_css_default.modalValue,
|
|
2946
3103
|
title: plugin.displayName ?? plugin.slug
|
|
2947
3104
|
}, plugin.displayName ?? plugin.slug)), plugin.source?.repo ? (0, react.createElement)("div", { className: Modal_module_css_default.modalRow }, (0, react.createElement)("span", { className: Modal_module_css_default.modalLabel }, t("confirmSource")), (0, react.createElement)("a", {
|
|
@@ -3039,7 +3196,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3039
3196
|
type: "button",
|
|
3040
3197
|
"aria-label": t("errorClose"),
|
|
3041
3198
|
onClick: onClose
|
|
3042
|
-
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("restartHint")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
3199
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "warning" })), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("restartHint")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
3043
3200
|
className: Modal_module_css_default.restartLater,
|
|
3044
3201
|
type: "button",
|
|
3045
3202
|
disabled: restarting,
|
|
@@ -3333,6 +3490,51 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3333
3490
|
}, t("uninstall")))));
|
|
3334
3491
|
}
|
|
3335
3492
|
//#endregion
|
|
3493
|
+
//#region src/client/components/modals/ConfirmDialog.tsx
|
|
3494
|
+
/**
|
|
3495
|
+
* DSH Plugin Hub — the community plugin marketplace for DeepSeek Harness.
|
|
3496
|
+
* Website: https://dsh-plugin.org
|
|
3497
|
+
* GitHub: https://github.com/dshplugin/dsh-plugin-hub
|
|
3498
|
+
*
|
|
3499
|
+
* Generic confirm dialog — the single entry point for every "are you sure?"
|
|
3500
|
+
* question in the app. Rule: any question must be a modal dialog, never an
|
|
3501
|
+
* in-button double-click.
|
|
3502
|
+
*
|
|
3503
|
+
* The icon in the middle tells the type at a glance: a blue question mark
|
|
3504
|
+
* for routine confirmations (install / update / restart / ignore), a red
|
|
3505
|
+
* action glyph for destructive ones (clear / delete / uninstall / reset).
|
|
3506
|
+
*/
|
|
3507
|
+
/** 通用确认弹窗:标题 + 类型图标 + 描述 + 取消/确认按钮。
|
|
3508
|
+
* type='question' → 蓝问号 + 品牌蓝确认按钮;危险类型 → 红图形 + 红色确认按钮。 */
|
|
3509
|
+
function ConfirmDialog({ type, title, desc, confirmLabel, cancelLabel, busy, busyLabel, t, onConfirm, onCancel }) {
|
|
3510
|
+
const danger = type !== "question";
|
|
3511
|
+
return (0, react.createElement)("div", {
|
|
3512
|
+
className: Modal_module_css_default.overlay,
|
|
3513
|
+
onClick: (e) => {
|
|
3514
|
+
if (e.target === e.currentTarget) onCancel();
|
|
3515
|
+
}
|
|
3516
|
+
}, (0, react.createElement)("div", {
|
|
3517
|
+
className: Modal_module_css_default.modal,
|
|
3518
|
+
role: "dialog",
|
|
3519
|
+
"aria-modal": "true"
|
|
3520
|
+
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.modalTitle }, title), (0, react.createElement)("button", {
|
|
3521
|
+
className: Modal_module_css_default.modalClose,
|
|
3522
|
+
type: "button",
|
|
3523
|
+
"aria-label": t("errorClose"),
|
|
3524
|
+
onClick: onCancel
|
|
3525
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type })), desc ? (0, react.createElement)("div", { className: Modal_module_css_default.modalDesc }, desc) : null, (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
3526
|
+
className: Modal_module_css_default.restartLater,
|
|
3527
|
+
type: "button",
|
|
3528
|
+
disabled: busy,
|
|
3529
|
+
onClick: onCancel
|
|
3530
|
+
}, cancelLabel ?? t("confirmCancel")), (0, react.createElement)("button", {
|
|
3531
|
+
className: danger ? Modal_module_css_default.dangerConfirm : Modal_module_css_default.confirmPrimary,
|
|
3532
|
+
type: "button",
|
|
3533
|
+
disabled: busy,
|
|
3534
|
+
onClick: onConfirm
|
|
3535
|
+
}, busy && busyLabel ? busyLabel : confirmLabel)))));
|
|
3536
|
+
}
|
|
3537
|
+
//#endregion
|
|
3336
3538
|
//#region src/client/components/modals/NotificationsModal.tsx
|
|
3337
3539
|
/**
|
|
3338
3540
|
* DSH Plugin Hub — the community plugin marketplace for DeepSeek Harness.
|
|
@@ -3378,6 +3580,8 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3378
3580
|
}));
|
|
3379
3581
|
}
|
|
3380
3582
|
function NotificationsModal({ records, tasks, pendingRestarts, t, env, onClose, onCopy, onClear, onRemove, onUpdate, onIgnoreUpdate, cancelTask, restarting, onRestart, resolveRepo }) {
|
|
3583
|
+
const [confirmClear, setConfirmClear] = (0, react.useState)(false);
|
|
3584
|
+
const [confirmRemoveId, setConfirmRemoveId] = (0, react.useState)(null);
|
|
3381
3585
|
return (0, react.createElement)("div", {
|
|
3382
3586
|
className: Modal_module_css_default.overlay,
|
|
3383
3587
|
onClick: (e) => {
|
|
@@ -3473,7 +3677,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3473
3677
|
title: t("removeNotification"),
|
|
3474
3678
|
onClick: (e) => {
|
|
3475
3679
|
e.stopPropagation();
|
|
3476
|
-
|
|
3680
|
+
setConfirmRemoveId(r.id);
|
|
3477
3681
|
}
|
|
3478
3682
|
}, (0, react.createElement)(CloseIcon))), !r.ok && (() => {
|
|
3479
3683
|
const kind = classifyFailure(r.message);
|
|
@@ -3501,11 +3705,33 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3501
3705
|
}, fmtTime(r.at))) : null);
|
|
3502
3706
|
})), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, records.length > 0 ? (0, react.createElement)("button", {
|
|
3503
3707
|
className: Modal_module_css_default.failClear,
|
|
3504
|
-
onClick:
|
|
3708
|
+
onClick: () => setConfirmClear(true)
|
|
3505
3709
|
}, t("notificationsClear")) : null, (0, react.createElement)("button", {
|
|
3506
3710
|
className: Modal_module_css_default.restartNow,
|
|
3507
3711
|
onClick: onClose
|
|
3508
|
-
}, t("errorClose"))))))
|
|
3712
|
+
}, t("errorClose"))))), confirmClear && (0, react.createElement)(ConfirmDialog, {
|
|
3713
|
+
type: "trash",
|
|
3714
|
+
title: t("notificationsClearConfirmTitle"),
|
|
3715
|
+
desc: t("notificationsClearConfirmDesc"),
|
|
3716
|
+
confirmLabel: t("notificationsClear"),
|
|
3717
|
+
t,
|
|
3718
|
+
onConfirm: () => {
|
|
3719
|
+
setConfirmClear(false);
|
|
3720
|
+
onClear();
|
|
3721
|
+
},
|
|
3722
|
+
onCancel: () => setConfirmClear(false)
|
|
3723
|
+
}), confirmRemoveId !== null && (0, react.createElement)(ConfirmDialog, {
|
|
3724
|
+
type: "trash",
|
|
3725
|
+
title: t("removeNotificationConfirmTitle"),
|
|
3726
|
+
desc: t("removeNotificationConfirmDesc"),
|
|
3727
|
+
confirmLabel: t("removeNotification"),
|
|
3728
|
+
t,
|
|
3729
|
+
onConfirm: () => {
|
|
3730
|
+
onRemove(confirmRemoveId);
|
|
3731
|
+
setConfirmRemoveId(null);
|
|
3732
|
+
},
|
|
3733
|
+
onCancel: () => setConfirmRemoveId(null)
|
|
3734
|
+
}));
|
|
3509
3735
|
}
|
|
3510
3736
|
//#endregion
|
|
3511
3737
|
//#region src/client/components/layout/CatalogHeader.tsx
|
|
@@ -3647,39 +3873,44 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3647
3873
|
tag.textContent = css$9;
|
|
3648
3874
|
document.head.appendChild(tag);
|
|
3649
3875
|
}
|
|
3876
|
+
const cssRegistry$9 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
3877
|
+
if (!cssRegistry$9.some((e) => e.tagId === tagId$9)) cssRegistry$9.push({
|
|
3878
|
+
tagId: tagId$9,
|
|
3879
|
+
css: css$9
|
|
3880
|
+
});
|
|
3650
3881
|
var List_module_css_default = {
|
|
3651
|
-
"
|
|
3652
|
-
"
|
|
3882
|
+
"stateTitle": "_3XaZHa_stateTitle",
|
|
3883
|
+
"fork": "_3XaZHa_fork",
|
|
3884
|
+
"installBtn": "_3XaZHa_installBtn",
|
|
3885
|
+
"detailBtn": "_3XaZHa_detailBtn",
|
|
3886
|
+
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
3887
|
+
"versionBadge": "_3XaZHa_versionBadge",
|
|
3888
|
+
"list": "_3XaZHa_list",
|
|
3889
|
+
"date": "_3XaZHa_date",
|
|
3890
|
+
"installBtnUpdate": "_3XaZHa_installBtnUpdate",
|
|
3891
|
+
"topics": "_3XaZHa_topics",
|
|
3653
3892
|
"topic": "_3XaZHa_topic",
|
|
3893
|
+
"actions": "_3XaZHa_actions",
|
|
3894
|
+
"installBtnInstalled": "_3XaZHa_installBtnInstalled",
|
|
3654
3895
|
"body": "_3XaZHa_body",
|
|
3655
|
-
"cardHead": "_3XaZHa_cardHead",
|
|
3656
3896
|
"card": "_3XaZHa_card",
|
|
3657
|
-
"
|
|
3658
|
-
"
|
|
3897
|
+
"stats": "_3XaZHa_stats",
|
|
3898
|
+
"updateBadge": "_3XaZHa_updateBadge",
|
|
3659
3899
|
"state": "_3XaZHa_state",
|
|
3660
|
-
"footLink": "_3XaZHa_footLink",
|
|
3661
|
-
"actions": "_3XaZHa_actions",
|
|
3662
3900
|
"verified": "_3XaZHa_verified",
|
|
3663
|
-
"
|
|
3664
|
-
"
|
|
3665
|
-
"footer": "_3XaZHa_footer",
|
|
3666
|
-
"cardMain": "_3XaZHa_cardMain",
|
|
3667
|
-
"moreSentinel": "_3XaZHa_moreSentinel",
|
|
3668
|
-
"list": "_3XaZHa_list",
|
|
3669
|
-
"retryBtn": "_3XaZHa_retryBtn",
|
|
3670
|
-
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
3901
|
+
"star": "_3XaZHa_star",
|
|
3902
|
+
"cardTitle": "_3XaZHa_cardTitle",
|
|
3671
3903
|
"uninstallBtn": "_3XaZHa_uninstallBtn",
|
|
3672
|
-
"stats": "_3XaZHa_stats",
|
|
3673
|
-
"versionBadge": "_3XaZHa_versionBadge",
|
|
3674
|
-
"desc": "_3XaZHa_desc",
|
|
3675
|
-
"updateBadge": "_3XaZHa_updateBadge",
|
|
3676
|
-
"topics": "_3XaZHa_topics",
|
|
3677
|
-
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
3678
3904
|
"stateDesc": "_3XaZHa_stateDesc",
|
|
3679
|
-
"
|
|
3680
|
-
"
|
|
3681
|
-
"
|
|
3682
|
-
"
|
|
3905
|
+
"footLink": "_3XaZHa_footLink",
|
|
3906
|
+
"installBtnCopied": "_3XaZHa_installBtnCopied",
|
|
3907
|
+
"footer": "_3XaZHa_footer",
|
|
3908
|
+
"categoryBadge": "_3XaZHa_categoryBadge",
|
|
3909
|
+
"desc": "_3XaZHa_desc",
|
|
3910
|
+
"cardHead": "_3XaZHa_cardHead",
|
|
3911
|
+
"retryBtn": "_3XaZHa_retryBtn",
|
|
3912
|
+
"cardSide": "_3XaZHa_cardSide",
|
|
3913
|
+
"cardMain": "_3XaZHa_cardMain"
|
|
3683
3914
|
};
|
|
3684
3915
|
//#endregion
|
|
3685
3916
|
//#region src/client/hooks/useIncrementalList.ts
|
|
@@ -3875,16 +4106,21 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3875
4106
|
tag.textContent = css$8;
|
|
3876
4107
|
document.head.appendChild(tag);
|
|
3877
4108
|
}
|
|
4109
|
+
const cssRegistry$8 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4110
|
+
if (!cssRegistry$8.some((e) => e.tagId === tagId$8)) cssRegistry$8.push({
|
|
4111
|
+
tagId: tagId$8,
|
|
4112
|
+
css: css$8
|
|
4113
|
+
});
|
|
3878
4114
|
var SectionTabs_module_css_default = {
|
|
3879
|
-
"
|
|
4115
|
+
"tab": "_7tvizq_tab",
|
|
4116
|
+
"tabIcon": "_7tvizq_tabIcon",
|
|
4117
|
+
"tabCountActive": "_7tvizq_tabCountActive",
|
|
3880
4118
|
"noticeIcon": "_7tvizq_noticeIcon",
|
|
3881
|
-
"noticeCount": "_7tvizq_noticeCount",
|
|
3882
|
-
"root": "_7tvizq_root",
|
|
3883
4119
|
"noticeBtn": "_7tvizq_noticeBtn",
|
|
3884
|
-
"
|
|
4120
|
+
"tabActive": "_7tvizq_tabActive",
|
|
4121
|
+
"noticeCount": "_7tvizq_noticeCount",
|
|
3885
4122
|
"tabCount": "_7tvizq_tabCount",
|
|
3886
|
-
"
|
|
3887
|
-
"tabCountActive": "_7tvizq_tabCountActive"
|
|
4123
|
+
"root": "_7tvizq_root"
|
|
3888
4124
|
};
|
|
3889
4125
|
//#endregion
|
|
3890
4126
|
//#region src/client/components/layout/SectionTabs.tsx
|
|
@@ -3955,43 +4191,48 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
3955
4191
|
tag.textContent = css$7;
|
|
3956
4192
|
document.head.appendChild(tag);
|
|
3957
4193
|
}
|
|
4194
|
+
const cssRegistry$7 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4195
|
+
if (!cssRegistry$7.some((e) => e.tagId === tagId$7)) cssRegistry$7.push({
|
|
4196
|
+
tagId: tagId$7,
|
|
4197
|
+
css: css$7
|
|
4198
|
+
});
|
|
3958
4199
|
var InstalledView_module_css_default = {
|
|
3959
|
-
"
|
|
3960
|
-
"
|
|
4200
|
+
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
4201
|
+
"statusInactive": "_1nXeGW_statusInactive",
|
|
4202
|
+
"rowMeta": "_1nXeGW_rowMeta",
|
|
4203
|
+
"toolbar": "_1nXeGW_toolbar",
|
|
4204
|
+
"segBtn": "_1nXeGW_segBtn",
|
|
3961
4205
|
"emptyDesc": "_1nXeGW_emptyDesc",
|
|
3962
|
-
"
|
|
4206
|
+
"searchWrap": "_1nXeGW_searchWrap",
|
|
4207
|
+
"root": "_1nXeGW_root",
|
|
4208
|
+
"rowDesc": "_1nXeGW_rowDesc",
|
|
4209
|
+
"rowActions": "_1nXeGW_rowActions",
|
|
4210
|
+
"exampleBadge": "_1nXeGW_exampleBadge",
|
|
4211
|
+
"rowUninstall": "_1nXeGW_rowUninstall",
|
|
3963
4212
|
"rowCategory": "_1nXeGW_rowCategory",
|
|
3964
|
-
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
3965
|
-
"empty": "_1nXeGW_empty",
|
|
3966
|
-
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
3967
|
-
"rowMeta": "_1nXeGW_rowMeta",
|
|
3968
4213
|
"segLabel": "_1nXeGW_segLabel",
|
|
4214
|
+
"list": "_1nXeGW_list",
|
|
4215
|
+
"empty": "_1nXeGW_empty",
|
|
4216
|
+
"rowMain": "_1nXeGW_rowMain",
|
|
3969
4217
|
"rowSourceTag": "_1nXeGW_rowSourceTag",
|
|
3970
|
-
"
|
|
3971
|
-
"segBtn": "_1nXeGW_segBtn",
|
|
4218
|
+
"rowSourceTagManual": "_1nXeGW_rowSourceTagManual",
|
|
3972
4219
|
"rowDetail": "_1nXeGW_rowDetail",
|
|
3973
|
-
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
3974
|
-
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
3975
|
-
"toolbar": "_1nXeGW_toolbar",
|
|
3976
|
-
"list": "_1nXeGW_list",
|
|
3977
|
-
"statusPending": "_1nXeGW_statusPending",
|
|
3978
|
-
"rowRepo": "_1nXeGW_rowRepo",
|
|
3979
|
-
"updateBadge": "_1nXeGW_updateBadge",
|
|
3980
4220
|
"rowTitle": "_1nXeGW_rowTitle",
|
|
3981
|
-
"rowRestart": "_1nXeGW_rowRestart",
|
|
3982
|
-
"searchWrap": "_1nXeGW_searchWrap",
|
|
3983
4221
|
"segGroup": "_1nXeGW_segGroup",
|
|
3984
|
-
"
|
|
3985
|
-
"
|
|
3986
|
-
"
|
|
3987
|
-
"
|
|
3988
|
-
"
|
|
4222
|
+
"segRow": "_1nXeGW_segRow",
|
|
4223
|
+
"statusPending": "_1nXeGW_statusPending",
|
|
4224
|
+
"rowUpdate": "_1nXeGW_rowUpdate",
|
|
4225
|
+
"updateBadge": "_1nXeGW_updateBadge",
|
|
4226
|
+
"emptyTitle": "_1nXeGW_emptyTitle",
|
|
4227
|
+
"rowRepo": "_1nXeGW_rowRepo",
|
|
3989
4228
|
"exampleRow": "_1nXeGW_exampleRow",
|
|
3990
|
-
"
|
|
3991
|
-
"rowTitleLine": "_1nXeGW_rowTitleLine",
|
|
3992
|
-
"rowMain": "_1nXeGW_rowMain",
|
|
4229
|
+
"rowSourceTagHub": "_1nXeGW_rowSourceTagHub",
|
|
3993
4230
|
"statusDot": "_1nXeGW_statusDot",
|
|
3994
|
-
"versionBadge": "_1nXeGW_versionBadge"
|
|
4231
|
+
"versionBadge": "_1nXeGW_versionBadge",
|
|
4232
|
+
"searchInput": "_1nXeGW_searchInput",
|
|
4233
|
+
"segBtnActive": "_1nXeGW_segBtnActive",
|
|
4234
|
+
"rowRestart": "_1nXeGW_rowRestart",
|
|
4235
|
+
"row": "_1nXeGW_row"
|
|
3995
4236
|
};
|
|
3996
4237
|
//#endregion
|
|
3997
4238
|
//#region src/client/components/views/InstalledView.tsx
|
|
@@ -4231,27 +4472,32 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4231
4472
|
tag.textContent = css$6;
|
|
4232
4473
|
document.head.appendChild(tag);
|
|
4233
4474
|
}
|
|
4475
|
+
const cssRegistry$6 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4476
|
+
if (!cssRegistry$6.some((e) => e.tagId === tagId$6)) cssRegistry$6.push({
|
|
4477
|
+
tagId: tagId$6,
|
|
4478
|
+
css: css$6
|
|
4479
|
+
});
|
|
4234
4480
|
var CustomInstallView_module_css_default = {
|
|
4481
|
+
"channelOffText": "zISxCG_channelOffText",
|
|
4235
4482
|
"helpLine": "zISxCG_helpLine",
|
|
4236
|
-
"installError": "zISxCG_installError",
|
|
4237
|
-
"installCards": "zISxCG_installCards",
|
|
4238
|
-
"installLabel": "zISxCG_installLabel",
|
|
4239
4483
|
"installCardDisabled": "zISxCG_installCardDisabled",
|
|
4240
|
-
"
|
|
4241
|
-
"installInput": "zISxCG_installInput",
|
|
4484
|
+
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4242
4485
|
"installCard": "zISxCG_installCard",
|
|
4486
|
+
"desc": "zISxCG_desc",
|
|
4487
|
+
"installError": "zISxCG_installError",
|
|
4488
|
+
"helpBody": "zISxCG_helpBody",
|
|
4489
|
+
"installInputError": "zISxCG_installInputError",
|
|
4490
|
+
"channelOff": "zISxCG_channelOff",
|
|
4491
|
+
"installExample": "zISxCG_installExample",
|
|
4492
|
+
"installRow": "zISxCG_installRow",
|
|
4243
4493
|
"helpCmd": "zISxCG_helpCmd",
|
|
4244
|
-
"
|
|
4245
|
-
"
|
|
4494
|
+
"installBtn": "zISxCG_installBtn",
|
|
4495
|
+
"installCards": "zISxCG_installCards",
|
|
4496
|
+
"installLabel": "zISxCG_installLabel",
|
|
4246
4497
|
"installCardHead": "zISxCG_installCardHead",
|
|
4247
|
-
"
|
|
4248
|
-
"channelOff": "zISxCG_channelOff",
|
|
4249
|
-
"installInputError": "zISxCG_installInputError",
|
|
4498
|
+
"installInput": "zISxCG_installInput",
|
|
4250
4499
|
"channelOffBtn": "zISxCG_channelOffBtn",
|
|
4251
|
-
"
|
|
4252
|
-
"installExample": "zISxCG_installExample",
|
|
4253
|
-
"installHelpBtn": "zISxCG_installHelpBtn",
|
|
4254
|
-
"desc": "zISxCG_desc",
|
|
4500
|
+
"helpNote": "zISxCG_helpNote",
|
|
4255
4501
|
"root": "zISxCG_root"
|
|
4256
4502
|
};
|
|
4257
4503
|
//#endregion
|
|
@@ -4519,27 +4765,32 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4519
4765
|
tag.textContent = css$5;
|
|
4520
4766
|
document.head.appendChild(tag);
|
|
4521
4767
|
}
|
|
4768
|
+
const cssRegistry$5 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4769
|
+
if (!cssRegistry$5.some((e) => e.tagId === tagId$5)) cssRegistry$5.push({
|
|
4770
|
+
tagId: tagId$5,
|
|
4771
|
+
css: css$5
|
|
4772
|
+
});
|
|
4522
4773
|
var SettingsView_module_css_default = {
|
|
4774
|
+
"settingControl": "_506LLG_settingControl",
|
|
4775
|
+
"root": "_506LLG_root",
|
|
4776
|
+
"pageHeader": "_506LLG_pageHeader",
|
|
4777
|
+
"pageDesc": "_506LLG_pageDesc",
|
|
4778
|
+
"controlDropdown": "_506LLG_controlDropdown",
|
|
4779
|
+
"textInput": "_506LLG_textInput",
|
|
4780
|
+
"settingDesc": "_506LLG_settingDesc",
|
|
4781
|
+
"settingLabel": "_506LLG_settingLabel",
|
|
4523
4782
|
"pageTitle": "_506LLG_pageTitle",
|
|
4524
4783
|
"settingControlStack": "_506LLG_settingControlStack",
|
|
4525
|
-
"
|
|
4784
|
+
"settingRowStack": "_506LLG_settingRowStack",
|
|
4526
4785
|
"navItemActive": "_506LLG_navItemActive",
|
|
4786
|
+
"navIcon": "_506LLG_navIcon",
|
|
4527
4787
|
"content": "_506LLG_content",
|
|
4528
|
-
"settingLabel": "_506LLG_settingLabel",
|
|
4529
|
-
"sidebar": "_506LLG_sidebar",
|
|
4530
|
-
"settingRowStack": "_506LLG_settingRowStack",
|
|
4531
|
-
"settingDesc": "_506LLG_settingDesc",
|
|
4532
|
-
"pageHeader": "_506LLG_pageHeader",
|
|
4533
|
-
"controlDropdown": "_506LLG_controlDropdown",
|
|
4534
|
-
"root": "_506LLG_root",
|
|
4535
|
-
"card": "_506LLG_card",
|
|
4536
|
-
"textInput": "_506LLG_textInput",
|
|
4537
|
-
"pageDesc": "_506LLG_pageDesc",
|
|
4538
4788
|
"settingTitle": "_506LLG_settingTitle",
|
|
4789
|
+
"sidebar": "_506LLG_sidebar",
|
|
4790
|
+
"navItem": "_506LLG_navItem",
|
|
4539
4791
|
"settingRow": "_506LLG_settingRow",
|
|
4540
|
-
"
|
|
4541
|
-
"
|
|
4542
|
-
"resetBtn": "_506LLG_resetBtn"
|
|
4792
|
+
"resetBtn": "_506LLG_resetBtn",
|
|
4793
|
+
"card": "_506LLG_card"
|
|
4543
4794
|
};
|
|
4544
4795
|
//#endregion
|
|
4545
4796
|
//#region \0dsh-css:src/client/styles/Dropdown.module.css.mjs
|
|
@@ -4552,18 +4803,23 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4552
4803
|
tag.textContent = css$4;
|
|
4553
4804
|
document.head.appendChild(tag);
|
|
4554
4805
|
}
|
|
4806
|
+
const cssRegistry$4 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4807
|
+
if (!cssRegistry$4.some((e) => e.tagId === tagId$4)) cssRegistry$4.push({
|
|
4808
|
+
tagId: tagId$4,
|
|
4809
|
+
css: css$4
|
|
4810
|
+
});
|
|
4555
4811
|
var Dropdown_module_css_default = {
|
|
4556
|
-
"
|
|
4557
|
-
"
|
|
4812
|
+
"dropdownItemActive": "B_Gxsq_dropdownItemActive",
|
|
4813
|
+
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
4558
4814
|
"dropdownCountActive": "B_Gxsq_dropdownCountActive",
|
|
4815
|
+
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
4816
|
+
"dropdown": "B_Gxsq_dropdown",
|
|
4559
4817
|
"dropdownPanel": "B_Gxsq_dropdownPanel",
|
|
4560
4818
|
"dropdownItemLabel": "B_Gxsq_dropdownItemLabel",
|
|
4561
|
-
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
4562
|
-
"dropdownCount": "B_Gxsq_dropdownCount",
|
|
4563
4819
|
"dropdownBtn": "B_Gxsq_dropdownBtn",
|
|
4564
|
-
"dropdownArrow": "B_Gxsq_dropdownArrow",
|
|
4565
4820
|
"dropdownItem": "B_Gxsq_dropdownItem",
|
|
4566
|
-
"
|
|
4821
|
+
"dropdownLabel": "B_Gxsq_dropdownLabel",
|
|
4822
|
+
"dropdownArrowOpen": "B_Gxsq_dropdownArrowOpen"
|
|
4567
4823
|
};
|
|
4568
4824
|
//#endregion
|
|
4569
4825
|
//#region src/client/components/ui/Dropdown.tsx
|
|
@@ -4635,10 +4891,15 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4635
4891
|
tag.textContent = css$3;
|
|
4636
4892
|
document.head.appendChild(tag);
|
|
4637
4893
|
}
|
|
4894
|
+
const cssRegistry$3 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4895
|
+
if (!cssRegistry$3.some((e) => e.tagId === tagId$3)) cssRegistry$3.push({
|
|
4896
|
+
tagId: tagId$3,
|
|
4897
|
+
css: css$3
|
|
4898
|
+
});
|
|
4638
4899
|
var Toggle_module_css_default = {
|
|
4639
|
-
"
|
|
4900
|
+
"toggleOn": "k-cD4G_toggleOn",
|
|
4640
4901
|
"toggle": "k-cD4G_toggle",
|
|
4641
|
-
"
|
|
4902
|
+
"knob": "k-cD4G_knob"
|
|
4642
4903
|
};
|
|
4643
4904
|
//#endregion
|
|
4644
4905
|
//#region src/client/components/ui/Toggle.tsx
|
|
@@ -4673,30 +4934,35 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4673
4934
|
tag.textContent = css$2;
|
|
4674
4935
|
document.head.appendChild(tag);
|
|
4675
4936
|
}
|
|
4937
|
+
const cssRegistry$2 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
4938
|
+
if (!cssRegistry$2.some((e) => e.tagId === tagId$2)) cssRegistry$2.push({
|
|
4939
|
+
tagId: tagId$2,
|
|
4940
|
+
css: css$2
|
|
4941
|
+
});
|
|
4676
4942
|
var DiagnosticsView_module_css_default = {
|
|
4677
|
-
"
|
|
4678
|
-
"
|
|
4679
|
-
"
|
|
4943
|
+
"summary": "k9eRya_summary",
|
|
4944
|
+
"summaryRunning": "k9eRya_summaryRunning",
|
|
4945
|
+
"meta": "k9eRya_meta",
|
|
4946
|
+
"diagPulse": "k9eRya_diagPulse",
|
|
4680
4947
|
"badge": "k9eRya_badge",
|
|
4681
|
-
"
|
|
4682
|
-
"envLabel": "k9eRya_envLabel",
|
|
4683
|
-
"badgeFail": "k9eRya_badgeFail",
|
|
4684
|
-
"envTitle": "k9eRya_envTitle",
|
|
4948
|
+
"summaryOk": "k9eRya_summaryOk",
|
|
4685
4949
|
"head": "k9eRya_head",
|
|
4686
|
-
"badgeRunning": "k9eRya_badgeRunning",
|
|
4687
|
-
"badgeIdle": "k9eRya_badgeIdle",
|
|
4688
|
-
"summary": "k9eRya_summary",
|
|
4689
|
-
"runBtn": "k9eRya_runBtn",
|
|
4690
4950
|
"envCopyBtn": "k9eRya_envCopyBtn",
|
|
4691
|
-
"
|
|
4692
|
-
"
|
|
4693
|
-
"summaryRunning": "k9eRya_summaryRunning",
|
|
4694
|
-
"name": "k9eRya_name",
|
|
4695
|
-
"badgeOk": "k9eRya_badgeOk",
|
|
4951
|
+
"envDesc": "k9eRya_envDesc",
|
|
4952
|
+
"display": "k9eRya_display",
|
|
4696
4953
|
"headHint": "k9eRya_headHint",
|
|
4697
|
-
"
|
|
4954
|
+
"envRow": "k9eRya_envRow",
|
|
4955
|
+
"badgeOk": "k9eRya_badgeOk",
|
|
4956
|
+
"badgeRunning": "k9eRya_badgeRunning",
|
|
4957
|
+
"envTitle": "k9eRya_envTitle",
|
|
4698
4958
|
"summaryFail": "k9eRya_summaryFail",
|
|
4699
|
-
"
|
|
4959
|
+
"envLabel": "k9eRya_envLabel",
|
|
4960
|
+
"badgeIdle": "k9eRya_badgeIdle",
|
|
4961
|
+
"name": "k9eRya_name",
|
|
4962
|
+
"runBtn": "k9eRya_runBtn",
|
|
4963
|
+
"row": "k9eRya_row",
|
|
4964
|
+
"badgeFail": "k9eRya_badgeFail",
|
|
4965
|
+
"panel": "k9eRya_panel"
|
|
4700
4966
|
};
|
|
4701
4967
|
//#endregion
|
|
4702
4968
|
//#region src/client/components/views/DiagnosticsView.tsx
|
|
@@ -4844,7 +5110,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4844
5110
|
}
|
|
4845
5111
|
//#endregion
|
|
4846
5112
|
//#region \0dsh-css:src/client/styles/LogsView.module.css.mjs
|
|
4847
|
-
const css$1 = "._3j77BW_panel{flex-direction:column;min-width:0;display:flex}._3j77BW_head{border-bottom:1px solid var(--hub-border-1);flex-direction:column;align-items:stretch;gap:6px;padding:8px 12px;display:flex}._3j77BW_headHint{min-width:0;color:var(--hub-text-tertiary);font-size:11px;line-height:16px}._3j77BW_actions{flex:none;justify-content:flex-start;align-items:center;gap:6px;display:flex}._3j77BW_btn{height:24px;color:var(--hub-text-secondary);background:var(--hub-bg-hover);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;padding:0 10px;font-size:11.5px;font-weight:500;transition:color .12s,background-color .12s,border-color .12s}._3j77BW_btn:hover:not(:disabled){color:var(--hub-text-primary);background:var(--hub-bg-2)}._3j77BW_btn:disabled{opacity:.55;cursor:default}.
|
|
5113
|
+
const css$1 = "._3j77BW_panel{flex-direction:column;min-width:0;display:flex}._3j77BW_head{border-bottom:1px solid var(--hub-border-1);flex-direction:column;align-items:stretch;gap:6px;padding:8px 12px;display:flex}._3j77BW_headHint{min-width:0;color:var(--hub-text-tertiary);font-size:11px;line-height:16px}._3j77BW_actions{flex:none;justify-content:flex-start;align-items:center;gap:6px;display:flex}._3j77BW_btn{height:24px;color:var(--hub-text-secondary);background:var(--hub-bg-hover);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;padding:0 10px;font-size:11.5px;font-weight:500;transition:color .12s,background-color .12s,border-color .12s}._3j77BW_btn:hover:not(:disabled){color:var(--hub-text-primary);background:var(--hub-bg-2)}._3j77BW_btn:disabled{opacity:.55;cursor:default}._3j77BW_headActions{flex:1;justify-content:flex-end;margin-right:4px;display:flex}._3j77BW_clearBtn{height:22px;color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;flex:none;padding:0 10px;font-size:11px;font-weight:500;transition:color .12s,background-color .12s,border-color .12s}._3j77BW_clearBtn:hover:not(:disabled){color:var(--hub-text-primary);background:var(--hub-bg-2)}._3j77BW_clearBtn:disabled{opacity:.55;cursor:default}._3j77BW_list{flex-direction:column;max-height:340px;display:flex;overflow-y:auto}._3j77BW_entry{align-items:baseline;gap:8px;min-width:0;padding:5px 12px;font-size:11px;line-height:16px;display:flex}._3j77BW_entry:hover{background:var(--hub-bg-hover)}._3j77BW_time{font-variant-numeric:tabular-nums;color:var(--hub-text-tertiary);white-space:nowrap;flex:none}._3j77BW_event{color:var(--hub-text-tertiary);white-space:nowrap;flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}._3j77BW_message{min-width:0;color:var(--hub-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}._3j77BW_pathRow{border-bottom:1px solid var(--hub-border-1);align-items:center;gap:8px;padding:6px 12px;display:flex}._3j77BW_pathLabel{color:var(--hub-text-tertiary);flex:none;font-size:11px;line-height:16px}._3j77BW_pathText{min-width:0;color:var(--hub-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;line-height:16px;overflow:hidden}._3j77BW_footFail{color:var(--hub-danger-text);flex:none;font-size:11px;line-height:16px}._3j77BW_pathDialog{flex-direction:column;gap:10px;display:flex}._3j77BW_pathDialogDesc{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}._3j77BW_pathDialogRow{align-items:center;gap:6px;display:flex}._3j77BW_pathDialogReset{justify-content:space-between;align-items:center;gap:8px;display:flex}._3j77BW_pathDialogHint{color:var(--hub-text-tertiary);font-size:11px;line-height:16px}._3j77BW_linkBtn{color:var(--hub-brand);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-size:11.5px;font-weight:500;line-height:16px}._3j77BW_linkBtn:hover{text-decoration:underline}._3j77BW_pathDraft{min-width:0;height:26px;color:var(--hub-text-primary);background:var(--hub-bg-1);border:1px solid var(--hub-border-input);border-radius:6px;outline:none;flex:1;padding:0 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;transition:border-color .12s}._3j77BW_pathDraft:focus{border-color:var(--hub-brand-border)}._3j77BW_pathDraft::placeholder{color:var(--hub-text-disabled)}._3j77BW_pathDialogFoot{justify-content:flex-end;gap:6px;display:flex}._3j77BW_previewRow{text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;width:100%;padding:0;display:block}._3j77BW_filterBar{flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0 0;display:flex}._3j77BW_filterChip{height:22px;color:var(--hub-text-secondary);border:1px solid var(--hub-border-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:11px;flex:none;padding:0 10px;font-size:11px;line-height:20px;transition:color .12s,background-color .12s,border-color .12s}._3j77BW_filterChip:hover{color:var(--hub-text-primary);background:var(--hub-bg-hover)}._3j77BW_filterChipActive,._3j77BW_filterChipActive:hover{color:var(--hub-brand);background:var(--hub-brand-tint);border-color:var(--hub-brand-border-soft);font-weight:500}._3j77BW_filterChipActive:hover{background:var(--hub-brand-tint-strong);border-color:var(--hub-brand-border)}._3j77BW_search{flex:1;min-width:140px}._3j77BW_searchInput{width:100%;height:24px;color:var(--hub-text-primary);background:var(--hub-bg-2);border:1px solid var(--hub-border-2);border-radius:6px;outline:none;padding:0 8px;font-size:11px;line-height:16px;transition:border-color .12s,background-color .12s}._3j77BW_searchInput:focus{border-color:var(--hub-brand);background:var(--hub-bg-1)}._3j77BW_searchInput::placeholder{color:var(--hub-text-tertiary)}._3j77BW_logList{flex-direction:column;flex:auto;min-height:0;padding:4px 0 6px;display:flex;overflow-y:auto}._3j77BW_more{height:26px;color:var(--hub-brand);background:var(--hub-brand-tint);border:1px solid var(--hub-brand-border-soft);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex:none;align-self:center;margin:10px 0 4px;padding:0 18px;font-size:11.5px;font-weight:500;transition:color .12s,background-color .12s,border-color .12s}._3j77BW_more:hover:not(:disabled){color:#fff;background:var(--hub-brand);border-color:var(--hub-brand)}._3j77BW_more:disabled{opacity:.55;cursor:default}._3j77BW_moreEnd{text-align:center;color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex:none;padding:12px 0 4px;font-size:11px;line-height:16px}._3j77BW_foot{border-top:1px solid var(--hub-border-1);align-items:center;gap:8px;padding:8px 12px;display:flex}._3j77BW_footPath{min-width:0;color:var(--hub-text-tertiary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px;line-height:16px;overflow:hidden}._3j77BW_footCount{color:var(--hub-text-tertiary);font-variant-numeric:tabular-nums;flex:none;font-size:11px;line-height:16px}._3j77BW_footActions{flex:none;align-items:center;gap:6px;display:inline-flex}._3j77BW_badge{letter-spacing:.3px;flex:none;font-size:10px;font-weight:600}._3j77BW_badgeSuccess{color:var(--hub-success)}._3j77BW_badgeError{color:var(--hub-danger-text)}._3j77BW_badgeWarn{color:var(--hub-warning)}._3j77BW_badgeInfo{color:var(--hub-text-secondary)}._3j77BW_badgeDebug{color:var(--hub-text-tertiary)}._3j77BW_catBadge{border:1px solid #0000;border-radius:4px;flex:none;padding:0 6px;font-size:10px;font-weight:500;line-height:16px}._3j77BW_catInstall{color:var(--hub-brand);border-color:var(--hub-brand-border-soft);background:var(--hub-brand-tint)}._3j77BW_catUninstall{color:var(--hub-danger-text);border-color:var(--hub-danger-border);background:var(--hub-danger-tint)}._3j77BW_catUpdate{color:var(--hub-warning);border-color:var(--hub-warning-border);background:var(--hub-warning-tint)}._3j77BW_catDiagnostics{color:var(--hub-success);border-color:var(--hub-success-border);background:var(--hub-success-tint)}._3j77BW_catSettings{color:var(--hub-warn);border-color:var(--hub-warn-border);background:var(--hub-warn-tint)}._3j77BW_catSystem{color:var(--hub-text-secondary);border-color:var(--hub-border-2);background:var(--hub-bg-hover)}._3j77BW_empty{text-align:center;color:var(--hub-text-tertiary);padding:28px 12px;font-size:11.5px}";
|
|
4848
5114
|
const tagId$1 = "dsh-plugin/LogsView.module.css";
|
|
4849
5115
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
4850
5116
|
const tag = document.createElement("style");
|
|
@@ -4853,57 +5119,63 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
4853
5119
|
tag.textContent = css$1;
|
|
4854
5120
|
document.head.appendChild(tag);
|
|
4855
5121
|
}
|
|
5122
|
+
const cssRegistry$1 = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
5123
|
+
if (!cssRegistry$1.some((e) => e.tagId === tagId$1)) cssRegistry$1.push({
|
|
5124
|
+
tagId: tagId$1,
|
|
5125
|
+
css: css$1
|
|
5126
|
+
});
|
|
4856
5127
|
var LogsView_module_css_default = {
|
|
4857
|
-
"
|
|
4858
|
-
"
|
|
4859
|
-
"footCount": "_3j77BW_footCount",
|
|
4860
|
-
"headHint": "_3j77BW_headHint",
|
|
4861
|
-
"actions": "_3j77BW_actions",
|
|
5128
|
+
"pathDraft": "_3j77BW_pathDraft",
|
|
5129
|
+
"searchInput": "_3j77BW_searchInput",
|
|
4862
5130
|
"panel": "_3j77BW_panel",
|
|
4863
|
-
"
|
|
4864
|
-
"
|
|
5131
|
+
"list": "_3j77BW_list",
|
|
5132
|
+
"foot": "_3j77BW_foot",
|
|
5133
|
+
"catInstall": "_3j77BW_catInstall",
|
|
5134
|
+
"catUpdate": "_3j77BW_catUpdate",
|
|
5135
|
+
"event": "_3j77BW_event",
|
|
5136
|
+
"footCount": "_3j77BW_footCount",
|
|
5137
|
+
"catDiagnostics": "_3j77BW_catDiagnostics",
|
|
4865
5138
|
"message": "_3j77BW_message",
|
|
4866
5139
|
"linkBtn": "_3j77BW_linkBtn",
|
|
4867
5140
|
"badgeSuccess": "_3j77BW_badgeSuccess",
|
|
5141
|
+
"badgeInfo": "_3j77BW_badgeInfo",
|
|
4868
5142
|
"pathText": "_3j77BW_pathText",
|
|
4869
|
-
"search": "_3j77BW_search",
|
|
4870
|
-
"catInstall": "_3j77BW_catInstall",
|
|
4871
|
-
"badgeDebug": "_3j77BW_badgeDebug",
|
|
4872
|
-
"catBadge": "_3j77BW_catBadge",
|
|
4873
|
-
"badgeError": "_3j77BW_badgeError",
|
|
4874
|
-
"empty": "_3j77BW_empty",
|
|
4875
|
-
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
4876
|
-
"searchInput": "_3j77BW_searchInput",
|
|
4877
|
-
"catSystem": "_3j77BW_catSystem",
|
|
4878
|
-
"catSettings": "_3j77BW_catSettings",
|
|
4879
5143
|
"footFail": "_3j77BW_footFail",
|
|
4880
|
-
"filterChipActive": "_3j77BW_filterChipActive",
|
|
4881
|
-
"more": "_3j77BW_more",
|
|
4882
|
-
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
4883
|
-
"foot": "_3j77BW_foot",
|
|
4884
|
-
"filterBar": "_3j77BW_filterBar",
|
|
4885
|
-
"event": "_3j77BW_event",
|
|
4886
5144
|
"filterChip": "_3j77BW_filterChip",
|
|
4887
|
-
"
|
|
4888
|
-
"
|
|
4889
|
-
"
|
|
5145
|
+
"head": "_3j77BW_head",
|
|
5146
|
+
"empty": "_3j77BW_empty",
|
|
5147
|
+
"search": "_3j77BW_search",
|
|
5148
|
+
"pathDialog": "_3j77BW_pathDialog",
|
|
5149
|
+
"badgeDebug": "_3j77BW_badgeDebug",
|
|
4890
5150
|
"pathRow": "_3j77BW_pathRow",
|
|
4891
|
-
"
|
|
4892
|
-
"
|
|
5151
|
+
"badgeError": "_3j77BW_badgeError",
|
|
5152
|
+
"headHint": "_3j77BW_headHint",
|
|
5153
|
+
"clearBtn": "_3j77BW_clearBtn",
|
|
5154
|
+
"pathLabel": "_3j77BW_pathLabel",
|
|
5155
|
+
"headActions": "_3j77BW_headActions",
|
|
4893
5156
|
"moreEnd": "_3j77BW_moreEnd",
|
|
4894
|
-
"entry": "_3j77BW_entry",
|
|
4895
|
-
"head": "_3j77BW_head",
|
|
4896
|
-
"footActions": "_3j77BW_footActions",
|
|
4897
|
-
"logList": "_3j77BW_logList",
|
|
4898
|
-
"badge": "_3j77BW_badge",
|
|
4899
5157
|
"badgeWarn": "_3j77BW_badgeWarn",
|
|
4900
|
-
"pathDialog": "_3j77BW_pathDialog",
|
|
4901
5158
|
"pathDialogRow": "_3j77BW_pathDialogRow",
|
|
5159
|
+
"badge": "_3j77BW_badge",
|
|
5160
|
+
"more": "_3j77BW_more",
|
|
5161
|
+
"footActions": "_3j77BW_footActions",
|
|
5162
|
+
"pathDialogReset": "_3j77BW_pathDialogReset",
|
|
5163
|
+
"catBadge": "_3j77BW_catBadge",
|
|
5164
|
+
"logList": "_3j77BW_logList",
|
|
5165
|
+
"pathDialogFoot": "_3j77BW_pathDialogFoot",
|
|
4902
5166
|
"catUninstall": "_3j77BW_catUninstall",
|
|
4903
|
-
"
|
|
4904
|
-
"
|
|
5167
|
+
"catSettings": "_3j77BW_catSettings",
|
|
5168
|
+
"catSystem": "_3j77BW_catSystem",
|
|
5169
|
+
"filterChipActive": "_3j77BW_filterChipActive",
|
|
5170
|
+
"actions": "_3j77BW_actions",
|
|
4905
5171
|
"time": "_3j77BW_time",
|
|
4906
|
-
"
|
|
5172
|
+
"previewRow": "_3j77BW_previewRow",
|
|
5173
|
+
"footPath": "_3j77BW_footPath",
|
|
5174
|
+
"pathDialogDesc": "_3j77BW_pathDialogDesc",
|
|
5175
|
+
"pathDialogHint": "_3j77BW_pathDialogHint",
|
|
5176
|
+
"filterBar": "_3j77BW_filterBar",
|
|
5177
|
+
"btn": "_3j77BW_btn",
|
|
5178
|
+
"entry": "_3j77BW_entry"
|
|
4907
5179
|
};
|
|
4908
5180
|
//#endregion
|
|
4909
5181
|
//#region src/client/components/modals/LogsModal.tsx
|
|
@@ -5032,6 +5304,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5032
5304
|
const [error, setError] = (0, react.useState)(false);
|
|
5033
5305
|
const [opening, setOpening] = (0, react.useState)(false);
|
|
5034
5306
|
const [openFailed, setOpenFailed] = (0, react.useState)(false);
|
|
5307
|
+
const [showClearConfirm, setShowClearConfirm] = (0, react.useState)(false);
|
|
5308
|
+
const [clearing, setClearing] = (0, react.useState)(false);
|
|
5309
|
+
const [clearFailed, setClearFailed] = (0, react.useState)(false);
|
|
5035
5310
|
const offsetRef = (0, react.useRef)(0);
|
|
5036
5311
|
/** 拉一页:过滤参数取当前 state,偏移量由调用方给出。 */
|
|
5037
5312
|
const fetchPage = (0, react.useCallback)(async (offset) => {
|
|
@@ -5109,6 +5384,25 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5109
5384
|
setOpening(false);
|
|
5110
5385
|
if (!ok) setOpenFailed(true);
|
|
5111
5386
|
};
|
|
5387
|
+
/** 清空所有日志:确认弹窗(独立弹出框,垃圾桶图标)确认后执行。 */
|
|
5388
|
+
const doClear = async () => {
|
|
5389
|
+
setClearing(true);
|
|
5390
|
+
try {
|
|
5391
|
+
if (!(await fetch("/dsh-plugin-hub/clear-log", {
|
|
5392
|
+
method: "POST",
|
|
5393
|
+
cache: "no-store"
|
|
5394
|
+
})).ok) {
|
|
5395
|
+
setClearFailed(true);
|
|
5396
|
+
return;
|
|
5397
|
+
}
|
|
5398
|
+
await reload();
|
|
5399
|
+
} catch {
|
|
5400
|
+
setClearFailed(true);
|
|
5401
|
+
} finally {
|
|
5402
|
+
setClearing(false);
|
|
5403
|
+
setShowClearConfirm(false);
|
|
5404
|
+
}
|
|
5405
|
+
};
|
|
5112
5406
|
/** 导出:拼纯文本 → Blob → 触发浏览器下载 .log 文件 */
|
|
5113
5407
|
const exportFile = () => {
|
|
5114
5408
|
const text = entries.map((e) => `[${fmtLogTime(e.at)}] [${e.level}] [${e.category}] [${e.event}] ${e.message}`).join("\n");
|
|
@@ -5132,7 +5426,13 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5132
5426
|
className: `${Modal_module_css_default.errorModal} ${Modal_module_css_default.logModal}`,
|
|
5133
5427
|
role: "dialog",
|
|
5134
5428
|
"aria-modal": "true"
|
|
5135
|
-
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.modalTitle }, t("logModalTitle")), (0, react.createElement)("button", {
|
|
5429
|
+
}, (0, react.createElement)("div", { className: Modal_module_css_default.modalHead }, (0, react.createElement)("div", { className: Modal_module_css_default.modalTitle }, t("logModalTitle")), (0, react.createElement)("div", { className: LogsView_module_css_default.headActions }, (0, react.createElement)("button", {
|
|
5430
|
+
type: "button",
|
|
5431
|
+
className: LogsView_module_css_default.clearBtn,
|
|
5432
|
+
disabled: clearing,
|
|
5433
|
+
title: t("logClearAllTip"),
|
|
5434
|
+
onClick: () => setShowClearConfirm(true)
|
|
5435
|
+
}, t("logClearAll"))), (0, react.createElement)("button", {
|
|
5136
5436
|
className: Modal_module_css_default.modalClose,
|
|
5137
5437
|
"aria-label": t("errorClose"),
|
|
5138
5438
|
onClick: onClose
|
|
@@ -5165,7 +5465,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5165
5465
|
}, loading ? t("logsLoading") : t("logLoadMore")) : (0, react.createElement)("div", { className: LogsView_module_css_default.moreEnd }, t("logNoMore", { n: total }))))), (0, react.createElement)("div", { className: LogsView_module_css_default.foot }, (0, react.createElement)("span", {
|
|
5166
5466
|
className: LogsView_module_css_default.footPath,
|
|
5167
5467
|
title: path
|
|
5168
|
-
}, `${t("logPathLabel")}: ${path === "" ? "…" : path}`), openFailed ? (0, react.createElement)("span", { className: LogsView_module_css_default.footFail }, t("logOpenFileFail")) : (0, react.createElement)("span", { className: LogsView_module_css_default.footCount }, t("logCount", { n: total })), (0, react.createElement)("div", { className: LogsView_module_css_default.footActions }, (0, react.createElement)("button", {
|
|
5468
|
+
}, `${t("logPathLabel")}: ${path === "" ? "…" : path}`), clearFailed ? (0, react.createElement)("span", { className: LogsView_module_css_default.footFail }, t("logClearFailed")) : openFailed ? (0, react.createElement)("span", { className: LogsView_module_css_default.footFail }, t("logOpenFileFail")) : (0, react.createElement)("span", { className: LogsView_module_css_default.footCount }, t("logCount", { n: total })), (0, react.createElement)("div", { className: LogsView_module_css_default.footActions }, (0, react.createElement)("button", {
|
|
5169
5469
|
type: "button",
|
|
5170
5470
|
className: LogsView_module_css_default.btn,
|
|
5171
5471
|
disabled: opening || path === "",
|
|
@@ -5173,10 +5473,20 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5173
5473
|
onClick: () => void openFile()
|
|
5174
5474
|
}, t("logOpenFile")), (0, react.createElement)("button", {
|
|
5175
5475
|
type: "button",
|
|
5176
|
-
className:
|
|
5476
|
+
className: LogsView_module_css_default.btn,
|
|
5177
5477
|
disabled: entries.length === 0,
|
|
5178
5478
|
onClick: exportFile
|
|
5179
|
-
}, t("logsExport"))))))
|
|
5479
|
+
}, t("logsExport"))))), showClearConfirm && (0, react.createElement)(ConfirmDialog, {
|
|
5480
|
+
type: "trash",
|
|
5481
|
+
title: t("logClearConfirmTitle"),
|
|
5482
|
+
desc: t("logClearConfirmDesc"),
|
|
5483
|
+
confirmLabel: t("logClearAll"),
|
|
5484
|
+
busy: clearing,
|
|
5485
|
+
busyLabel: t("logClearing"),
|
|
5486
|
+
t,
|
|
5487
|
+
onConfirm: () => void doClear(),
|
|
5488
|
+
onCancel: () => setShowClearConfirm(false)
|
|
5489
|
+
}));
|
|
5180
5490
|
}
|
|
5181
5491
|
//#endregion
|
|
5182
5492
|
//#region src/client/components/modals/LogsPathModal.tsx
|
|
@@ -5369,7 +5679,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5369
5679
|
const preview = entries.slice(0, PREVIEW);
|
|
5370
5680
|
return (0, react.createElement)("div", { className: LogsView_module_css_default.panel }, (0, react.createElement)("div", { className: LogsView_module_css_default.head }, (0, react.createElement)("span", { className: LogsView_module_css_default.headHint }, t("logsHeadHint")), (0, react.createElement)("div", { className: LogsView_module_css_default.actions }, (0, react.createElement)("button", {
|
|
5371
5681
|
type: "button",
|
|
5372
|
-
className:
|
|
5682
|
+
className: LogsView_module_css_default.btn,
|
|
5373
5683
|
onClick: () => setOpen(true)
|
|
5374
5684
|
}, t("logViewerOpen")), (0, react.createElement)("button", {
|
|
5375
5685
|
type: "button",
|
|
@@ -5620,7 +5930,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5620
5930
|
type: "button",
|
|
5621
5931
|
"aria-label": t("errorClose"),
|
|
5622
5932
|
onClick: () => setResetConfirm(false)
|
|
5623
|
-
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("settingsResetConfirmDetail")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
5933
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "warning" })), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("settingsResetConfirmDetail")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
5624
5934
|
className: Modal_module_css_default.restartLater,
|
|
5625
5935
|
type: "button",
|
|
5626
5936
|
onClick: () => setResetConfirm(false)
|
|
@@ -5707,6 +6017,9 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
5707
6017
|
alive = false;
|
|
5708
6018
|
};
|
|
5709
6019
|
}, []);
|
|
6020
|
+
(0, react.useEffect)(() => {
|
|
6021
|
+
ensurePluginCss();
|
|
6022
|
+
}, [view]);
|
|
5710
6023
|
const queue = useTaskQueue({
|
|
5711
6024
|
t,
|
|
5712
6025
|
refreshInstalled: catalog.refreshInstalled,
|
|
@@ -6040,7 +6353,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6040
6353
|
});
|
|
6041
6354
|
}
|
|
6042
6355
|
}), showHubUpdate && (0, react.createElement)(HubUpdateModal, {
|
|
6043
|
-
info: catalog.hubUpdateInfo ?? { version: "1.3.
|
|
6356
|
+
info: catalog.hubUpdateInfo ?? { version: "1.3.3" },
|
|
6044
6357
|
lang,
|
|
6045
6358
|
t,
|
|
6046
6359
|
hasUpdate: catalog.hubHasUpdate,
|
|
@@ -6090,9 +6403,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6090
6403
|
}),
|
|
6091
6404
|
cancelTask: queue.cancelTask,
|
|
6092
6405
|
restarting,
|
|
6093
|
-
onRestart: () =>
|
|
6094
|
-
requestRestart();
|
|
6095
|
-
},
|
|
6406
|
+
onRestart: () => setShowRestartConfirm(true),
|
|
6096
6407
|
resolveRepo: (repo) => issueRepoOf(repo, catalog.installedItems, catalog.plugins)
|
|
6097
6408
|
}), ignoreTarget && (0, react.createElement)("div", {
|
|
6098
6409
|
className: Modal_module_css_default.overlay,
|
|
@@ -6108,7 +6419,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6108
6419
|
type: "button",
|
|
6109
6420
|
"aria-label": t("errorClose"),
|
|
6110
6421
|
onClick: () => setIgnoreTarget(null)
|
|
6111
|
-
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("ignoreUpdateConfirmDetail")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
6422
|
+
}, (0, react.createElement)(CloseIcon))), (0, react.createElement)("div", { className: Modal_module_css_default.modalBody }, (0, react.createElement)("div", { className: Modal_module_css_default.confirmIconWrap }, (0, react.createElement)(ConfirmIcon, { type: "question" })), (0, react.createElement)("div", { className: Modal_module_css_default.failPrepareHint }, t("ignoreUpdateConfirmDetail")), (0, react.createElement)("div", { className: Modal_module_css_default.modalActions }, (0, react.createElement)("button", {
|
|
6112
6423
|
className: Modal_module_css_default.restartLater,
|
|
6113
6424
|
type: "button",
|
|
6114
6425
|
onClick: () => setIgnoreTarget(null)
|
|
@@ -6134,9 +6445,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6134
6445
|
onClose: () => setConfirmPlugin(null),
|
|
6135
6446
|
onCopy: () => copyCommand(confirmPlugin),
|
|
6136
6447
|
onInstall: () => queue.installNow(confirmPlugin, confirmIsUpdate ? { update: true } : void 0),
|
|
6137
|
-
onRestart: () =>
|
|
6138
|
-
requestRestart();
|
|
6139
|
-
}
|
|
6448
|
+
onRestart: () => setShowRestartConfirm(true)
|
|
6140
6449
|
}), confirmCustomTarget && (0, react.createElement)(InstallModal, {
|
|
6141
6450
|
plugin: null,
|
|
6142
6451
|
customTarget: confirmCustomTarget,
|
|
@@ -6161,9 +6470,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6161
6470
|
});
|
|
6162
6471
|
},
|
|
6163
6472
|
onInstall: () => void queue.installCustom(confirmCustomTarget, confirmIsUpdate ? { update: true } : void 0),
|
|
6164
|
-
onRestart: () =>
|
|
6165
|
-
requestRestart();
|
|
6166
|
-
}
|
|
6473
|
+
onRestart: () => setShowRestartConfirm(true)
|
|
6167
6474
|
}), confirmGlobalNpm && (0, react.createElement)(InstallModal, {
|
|
6168
6475
|
plugin: null,
|
|
6169
6476
|
globalNpm: confirmGlobalNpm.pkgs,
|
|
@@ -6188,9 +6495,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6188
6495
|
});
|
|
6189
6496
|
},
|
|
6190
6497
|
onInstall: () => void queue.installGlobalNpm(confirmGlobalNpm.pkgs),
|
|
6191
|
-
onRestart: () =>
|
|
6192
|
-
requestRestart();
|
|
6193
|
-
}
|
|
6498
|
+
onRestart: () => setShowRestartConfirm(true)
|
|
6194
6499
|
}), (uninstallPlugin || uninstallItem) && (0, react.createElement)(UninstallModal, {
|
|
6195
6500
|
plugin: uninstallPlugin ?? pluginOfItem(uninstallItem),
|
|
6196
6501
|
done: uninstallDone,
|
|
@@ -6214,9 +6519,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6214
6519
|
if (uninstallItem) queue.uninstallItem(uninstallItem);
|
|
6215
6520
|
else if (uninstallPlugin) queue.uninstallNow(uninstallPlugin);
|
|
6216
6521
|
},
|
|
6217
|
-
onRestart: () =>
|
|
6218
|
-
requestRestart();
|
|
6219
|
-
}
|
|
6522
|
+
onRestart: () => setShowRestartConfirm(true)
|
|
6220
6523
|
}), detailItem && (0, react.createElement)(InstalledDetailModal, {
|
|
6221
6524
|
item: detailItem,
|
|
6222
6525
|
t,
|
|
@@ -6287,6 +6590,11 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6287
6590
|
tag.textContent = css;
|
|
6288
6591
|
document.head.appendChild(tag);
|
|
6289
6592
|
}
|
|
6593
|
+
const cssRegistry = globalThis.__DSH_PLUGIN_CSS__ ??= [];
|
|
6594
|
+
if (!cssRegistry.some((e) => e.tagId === tagId)) cssRegistry.push({
|
|
6595
|
+
tagId,
|
|
6596
|
+
css
|
|
6597
|
+
});
|
|
6290
6598
|
//#endregion
|
|
6291
6599
|
//#region src/client/index.tsx
|
|
6292
6600
|
/**
|