@ash-qw/dsh-theme-prts 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/lib/client.js +298 -57
- package/package.json +1 -1
- package/src/client/preferences.js +7 -1
- package/src/client/preview-markdown.js +26 -0
- package/src/client/session-summary-preview.js +158 -38
- package/src/client/sidebar-control-adapter.js +105 -16
- package/src/client/theme-settings-workbench.js +15 -1
- package/src/styles/facility-vector.css +5 -0
- package/src/styles/theme-settings-workbench.css +7 -0
|
@@ -64,7 +64,7 @@ function settingButtons(key, label, options) {
|
|
|
64
64
|
: key === 'sessionFlowPalette'
|
|
65
65
|
? '<small data-prts-setting-note>同时适配日间与夜间模式</small>'
|
|
66
66
|
: ''
|
|
67
|
-
if (['cursor', 'railDefaultHidden', 'sessionFlow', 'sessionGlow', 'bakerGroupAvatars', 'conversationEmblem', 'sessionPreview', 'previewOngoing', 'previewWarning', 'previewDone', 'previewDoubleClick'].includes(key)) return `<div data-prts-setting-row="${key}">
|
|
67
|
+
if (['cursor', 'railDefaultHidden', 'sessionFlow', 'sessionGlow', 'bakerGroupAvatars', 'conversationEmblem', 'sessionPreview', 'previewOngoing', 'previewWarning', 'previewDone', 'previewDoubleClick', 'previewFollowOngoing', 'previewFollowWarning'].includes(key)) return `<div data-prts-setting-row="${key}">
|
|
68
68
|
<span><strong>${label}</strong>${note}</span>
|
|
69
69
|
<button type="button" role="switch" aria-label="${label}" aria-checked="false" data-prts-setting-switch="${key}" ${key === 'cursor' ? 'data-prts-cursor-switch' : ''}><span aria-hidden="true"></span></button>
|
|
70
70
|
</div>`
|
|
@@ -195,8 +195,16 @@ export function themeSettingsMarkup() {
|
|
|
195
195
|
<section data-prts-preview-setting-group>
|
|
196
196
|
<header><strong>悬停预览</strong><small>选择哪些状态显示详细浮窗</small></header>
|
|
197
197
|
${previewSetting('previewOngoing', '运行中预览', '逐轮查看已完成的回复,最新内容置顶')}
|
|
198
|
+
<div data-prts-preview-details="previewOngoing">
|
|
199
|
+
<label data-prts-setting-row="previewReplyLimit"><span><strong>回复条数</strong><small data-prts-preview-setting-description>仅保留最新回复</small></span><select data-prts-preview-reply-limit aria-label="最多显示回复"><option value="5">最新 5 条</option><option value="10">最新 10 条</option><option value="0">不限制</option></select></label>
|
|
200
|
+
${previewSetting('previewFollowOngoing', '运行结束后跟随', '转为待处理或已完成时,自动切换预览')}
|
|
201
|
+
</div>
|
|
198
202
|
${previewSetting('previewWarning', '待处理预览(回答与审批)', '查看问题或审批请求,并直接提交选择')}
|
|
203
|
+
<div data-prts-preview-details="previewWarning">
|
|
204
|
+
${previewSetting('previewFollowWarning', '待处理结束后跟随', '回答或审批后继续跟随;关闭则留在待处理列表')}
|
|
205
|
+
</div>
|
|
199
206
|
${previewSetting('previewDone', '已完成预览', '查看本轮最终回复')}
|
|
207
|
+
|
|
200
208
|
</section>
|
|
201
209
|
<section data-prts-preview-setting-group>
|
|
202
210
|
<header><strong>快捷操作</strong></header>
|
|
@@ -515,6 +523,11 @@ export function createThemeSettingsOverlay({
|
|
|
515
523
|
toggle.setAttribute('aria-checked', String(enabled))
|
|
516
524
|
toggle.classList.toggle('is-active', enabled)
|
|
517
525
|
}
|
|
526
|
+
const replyLimitSelect = panel.querySelector('[data-prts-preview-reply-limit]')
|
|
527
|
+
if (replyLimitSelect) replyLimitSelect.value = String(currentPreferences.previewReplyLimit)
|
|
528
|
+
const replyLimitRow = panel.querySelector('[data-prts-setting-row="previewReplyLimit"]')
|
|
529
|
+
if (replyLimitRow) replyLimitRow.hidden = currentPreferences.previewOngoing === false
|
|
530
|
+
for (const details of panel.querySelectorAll('[data-prts-preview-details]')) details.hidden = currentPreferences[details.dataset.prtsPreviewDetails] === false
|
|
518
531
|
const previewOptions = panel.querySelector('[data-prts-preview-options]')
|
|
519
532
|
if (previewOptions) previewOptions.hidden = currentPreferences.sessionPreview === false
|
|
520
533
|
for (const key of ['sessionGlow', 'sessionFlowPalette', 'sessionFlowColors', 'sessionFlowSpeed']) {
|
|
@@ -636,6 +649,7 @@ export function createThemeSettingsOverlay({
|
|
|
636
649
|
|
|
637
650
|
function onPanelInput(event) {
|
|
638
651
|
const target = event.target
|
|
652
|
+
if (target?.matches?.('[data-prts-preview-reply-limit]')) { onPreferenceChange('previewReplyLimit', Number(target.value)); return }
|
|
639
653
|
if (target?.matches?.('input[data-prts-setting-color]')) {
|
|
640
654
|
const key = target.dataset.prtsSettingKey
|
|
641
655
|
const value = normalizeSessionFlowColor(target.value, currentSessionFlowColor(key))
|
|
@@ -775,3 +775,8 @@ html[data-dsh-prts] [data-prts-reply-entry]:is(:hover,:focus-visible,[data-prts-
|
|
|
775
775
|
html[data-dsh-prts] [data-prts-reply-entry] small { flex:0 0 auto;white-space:nowrap;padding-top:2px;color:var(--prts-muted);font:10px/1.5 var(--prts-mono); }
|
|
776
776
|
html[data-dsh-prts] [data-prts-reply-entry] span { min-width:0;flex:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:12px/1.6 var(--prts-body);overflow-wrap:anywhere; }
|
|
777
777
|
html[data-dsh-prts] [data-prts-reply-detail]:not([data-prts-preview-question]) > [data-prts-preview-body] { max-height:190px; }
|
|
778
|
+
|
|
779
|
+
html[data-dsh-prts] [data-prts-preview-marker] { display:none;flex:none;margin-left:auto;color:var(--prts-muted);font:600 9px/1.4 var(--prts-body); }
|
|
780
|
+
html[data-dsh-prts] [data-prts-preview-active] > [data-prts-preview-marker] { display:block; }
|
|
781
|
+
html[data-dsh-prts] [data-prts-session-summary-item][data-prts-preview-active] { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--prts-ink) 30%,transparent);border-top-color:transparent;border-radius:5px;background:color-mix(in srgb,currentColor 9%,transparent); }
|
|
782
|
+
html[data-dsh-prts] [data-prts-preview-session-title] { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;color:var(--prts-muted);font:400 11px/1.5 var(--prts-body); }
|
|
@@ -920,6 +920,13 @@ html[data-dsh-prts] [data-prts-preview-settings] {
|
|
|
920
920
|
& [data-prts-setting-row] { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border:0;background:none; }
|
|
921
921
|
& [data-prts-setting-row] > span { display:grid;gap:5px;min-width:0; }
|
|
922
922
|
& [data-prts-setting-row] strong { font:600 12px/1.5 var(--prts-body); }
|
|
923
|
+
& [data-prts-setting-row="previewReplyLimit"] { padding:0 0 14px;gap:12px; }
|
|
924
|
+
& [data-prts-setting-row="previewReplyLimit"] strong { color:var(--prts-muted);font-size:11px; }
|
|
925
|
+
& [data-prts-preview-reply-limit] { min-width:112px;padding:7px 10px;border:1px solid var(--prts-line);border-radius:5px;background:var(--prts-panel-raised);color:var(--prts-ink);font:400 11px/1.5 var(--prts-body); }
|
|
926
|
+
& [data-prts-preview-reply-limit]:focus-visible { outline:2px solid var(--prts-ink);outline-offset:2px; }
|
|
927
|
+
& [data-prts-preview-details] { padding:0 12px;margin:0 -12px 8px 0;border-radius:5px;background:color-mix(in srgb,var(--prts-ink) 3%,transparent); }
|
|
928
|
+
& [data-prts-preview-details] [data-prts-setting-row] { padding:10px 0; }
|
|
929
|
+
& [data-prts-preview-details] [data-prts-setting-row] strong { font-size:11px; }
|
|
923
930
|
& [data-prts-preview-setting-description] { color:var(--prts-muted);font:400 11px/1.6 var(--prts-body); }
|
|
924
931
|
& [data-prts-preview-master] { padding:8px 20px;background:color-mix(in srgb,var(--prts-yellow) 5%,transparent); }
|
|
925
932
|
& [data-prts-preview-master] [data-prts-setting-row] strong { font-size:14px; }
|