dsh-plugin-core 0.25.0 → 0.27.0

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.
Files changed (91) hide show
  1. package/dist/session/SessionViewModal.d.ts.map +1 -1
  2. package/dist/session/SessionViewModal.js +54 -17
  3. package/dist/session/SessionViewModal.js.map +1 -1
  4. package/dist/session/mirror/ChatView.d.ts.map +1 -1
  5. package/dist/session/mirror/ChatView.js +9 -1
  6. package/dist/session/mirror/ChatView.js.map +1 -1
  7. package/dist/session/mirror/Deliverables.d.ts.map +1 -1
  8. package/dist/session/mirror/Deliverables.js +42 -27
  9. package/dist/session/mirror/Deliverables.js.map +1 -1
  10. package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -1
  11. package/dist/session/mirror/GenericCommandCard.js +2 -3
  12. package/dist/session/mirror/GenericCommandCard.js.map +1 -1
  13. package/dist/session/mirror/MessageIconActions.d.ts.map +1 -1
  14. package/dist/session/mirror/MessageIconActions.js +3 -5
  15. package/dist/session/mirror/MessageIconActions.js.map +1 -1
  16. package/dist/session/mirror/MessageItem.d.ts +2 -0
  17. package/dist/session/mirror/MessageItem.d.ts.map +1 -1
  18. package/dist/session/mirror/MessageItem.js +22 -11
  19. package/dist/session/mirror/MessageItem.js.map +1 -1
  20. package/dist/session/mirror/ReasoningRow.d.ts.map +1 -1
  21. package/dist/session/mirror/ReasoningRow.js +79 -17
  22. package/dist/session/mirror/ReasoningRow.js.map +1 -1
  23. package/dist/session/mirror/RunningStatus.d.ts +12 -0
  24. package/dist/session/mirror/RunningStatus.d.ts.map +1 -0
  25. package/dist/session/mirror/RunningStatus.js +57 -0
  26. package/dist/session/mirror/RunningStatus.js.map +1 -0
  27. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +1 -1
  28. package/dist/session/mirror/TurnProcessNodeView.js +27 -38
  29. package/dist/session/mirror/TurnProcessNodeView.js.map +1 -1
  30. package/dist/session/mirror/TurnTailNodeView.d.ts +25 -0
  31. package/dist/session/mirror/TurnTailNodeView.d.ts.map +1 -1
  32. package/dist/session/mirror/TurnTailNodeView.js +65 -7
  33. package/dist/session/mirror/TurnTailNodeView.js.map +1 -1
  34. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +1 -1
  35. package/dist/session/mirror/TurnTriggerNodeView.js +36 -20
  36. package/dist/session/mirror/TurnTriggerNodeView.js.map +1 -1
  37. package/dist/session/mirror/message-chrome.d.ts +10 -4
  38. package/dist/session/mirror/message-chrome.d.ts.map +1 -1
  39. package/dist/session/mirror/message-chrome.js +11 -16
  40. package/dist/session/mirror/message-chrome.js.map +1 -1
  41. package/dist/session/official-classes.d.ts.map +1 -1
  42. package/dist/session/official-classes.js +5 -3
  43. package/dist/session/official-classes.js.map +1 -1
  44. package/dist/ui/AlertModal.d.ts +2 -0
  45. package/dist/ui/AlertModal.d.ts.map +1 -1
  46. package/dist/ui/AlertModal.js +1 -0
  47. package/dist/ui/AlertModal.js.map +1 -1
  48. package/dist/ui/ConfirmModal.d.ts +2 -0
  49. package/dist/ui/ConfirmModal.d.ts.map +1 -1
  50. package/dist/ui/ConfirmModal.js +1 -0
  51. package/dist/ui/ConfirmModal.js.map +1 -1
  52. package/dist/ui/FlipText.d.ts +38 -0
  53. package/dist/ui/FlipText.d.ts.map +1 -0
  54. package/dist/ui/FlipText.js +58 -0
  55. package/dist/ui/FlipText.js.map +1 -0
  56. package/dist/ui/Modal.d.ts +6 -0
  57. package/dist/ui/Modal.d.ts.map +1 -1
  58. package/dist/ui/Modal.js +5 -2
  59. package/dist/ui/Modal.js.map +1 -1
  60. package/dist/ui/SideSheet.d.ts +2 -0
  61. package/dist/ui/SideSheet.d.ts.map +1 -1
  62. package/dist/ui/SideSheet.js +6 -1
  63. package/dist/ui/SideSheet.js.map +1 -1
  64. package/dist/ui/feedback-css.generated.d.ts +1 -1
  65. package/dist/ui/feedback-css.generated.d.ts.map +1 -1
  66. package/dist/ui/feedback-css.generated.js +1 -1
  67. package/dist/ui/feedback-css.generated.js.map +1 -1
  68. package/dist/ui/flip-css.d.ts +2 -0
  69. package/dist/ui/flip-css.d.ts.map +1 -0
  70. package/dist/ui/flip-css.generated.d.ts +2 -0
  71. package/dist/ui/flip-css.generated.d.ts.map +1 -0
  72. package/dist/ui/flip-css.generated.js +4 -0
  73. package/dist/ui/flip-css.generated.js.map +1 -0
  74. package/dist/ui/flip-css.js +4 -0
  75. package/dist/ui/flip-css.js.map +1 -0
  76. package/dist/ui/index.d.ts +1 -0
  77. package/dist/ui/index.d.ts.map +1 -1
  78. package/dist/ui/index.js +1 -0
  79. package/dist/ui/index.js.map +1 -1
  80. package/dist/ui/side-sheet-css.generated.d.ts +1 -1
  81. package/dist/ui/side-sheet-css.generated.d.ts.map +1 -1
  82. package/dist/ui/side-sheet-css.generated.js +1 -1
  83. package/dist/ui/side-sheet-css.generated.js.map +1 -1
  84. package/dist/utils/i18n.d.ts +1 -1
  85. package/dist/utils/i18n.d.ts.map +1 -1
  86. package/dist/utils/i18n.js +20 -14
  87. package/dist/utils/i18n.js.map +1 -1
  88. package/docs/help/ui.doc.ts +48 -1
  89. package/docs/help/ui.md +43 -1
  90. package/docs/requirements.md +10 -1
  91. package/package.json +1 -1
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export type Locale = 'zh' | 'en';
9
9
  /** utils 内置文案的 key(ui 的选择器也复用这套字典,保持单一 locale 状态)。 */
10
- export type UtilMessageKey = 'sessionLoading' | 'sessionFailed' | 'sessionEmpty' | 'explorerLoading' | 'loadingDefault' | 'explorerFailed' | 'explorerRoot' | 'explorerTruncated' | 'explorerEmptyDir' | 'explorerLevels' | 'explorerExpand' | 'explorerCollapse' | 'explorerEnter' | 'explorerRootName' | 'explorerCrumbsAria' | 'explorerPickFile' | 'explorerPickDir' | 'explorerPickDirAria' | 'explorerRootDir' | 'previewClose' | 'previewCopyPath' | 'previewRefresh' | 'previewRender' | 'previewSource' | 'previewMdSwitchAria' | 'previewHtmlSwitchAria' | 'previewLoadMore' | 'previewTruncated' | 'previewOfficeUnavailable' | 'previewOfficeNoSession' | 'previewRenderFailed' | 'previewBadPayload' | 'previewOutside' | 'previewNotFound' | 'previewNotDirectory' | 'previewNotFile' | 'previewTooLarge' | 'previewNotText' | 'previewFailedCode' | 'mdCopy' | 'mdCopied' | 'mdCode' | 'mdWrap' | 'mdUnwrap' | 'mdFootnotes' | 'cardToggle' | 'tableEmpty' | 'tableLoading' | 'tableLoadingMore' | 'tableNoMore' | 'paginationAria' | 'paginationPrev' | 'paginationNext' | 'paginationPage' | 'paginationTotal' | 'paginationTotalZero' | 'paginationPageSizeOption' | 'paginationPageSizeAria' | 'modalClose' | 'dockClose' | 'dockResize' | 'dockCollapse' | 'dockExpand' | 'backToTop' | 'quickToolbarAria' | 'errorRetry' | 'confirm' | 'cancel' | 'dialogOk' | 'pickerPlaceholder' | 'pickerClear' | 'pickerEmpty' | 'pickerNoMatch' | 'pickerSearch' | 'pickerSelected' | 'pickerMaxReached' | 'pickerDegraded' | 'modelProvider' | 'modelModel' | 'modelDefault' | 'workspaceAll' | 'relNow' | 'relInJustNow' | 'relInMinutes' | 'relInHours' | 'relInDays' | 'relInMonths' | 'relInYears' | 'relJustNow' | 'relMinutesAgo' | 'relHoursAgo' | 'relDaysAgo' | 'relWeeksAgo' | 'relMonthsAgo' | 'relYearsAgo' | 'codeCopy' | 'codeCopied' | 'sessionUnknownKind' | 'sessionLoadOlder' | 'sessionProcess' | 'triggerRequest' | 'triggerGoal' | 'triggerAgent' | 'triggerTeam' | 'triggerSubagent' | 'triggerGithub' | 'triggerWebhook' | 'triggerSchedule' | 'triggerJob' | 'triggerPlugin' | 'triggerExplanation' | 'turnProcessTook' | 'turnProcessDeepDiving' | 'turnProcessWorked' | 'turnProcessFailed' | 'turnStopped' | 'chatDeepDiving' | 'thinkLabel' | 'durationSeconds' | 'durationMinutes' | 'durationHours' | 'durationMilliseconds' | 'retryActive' | 'retryCancelled' | 'retryStarted' | 'retryScheduled' | 'retryStatus' | 'retryDelay' | 'retryFailure' | 'turnErrorTitle' | 'accountStopped' | 'maxTokensTitle' | 'maxTokensHint' | 'failureAuth' | 'failureQuota' | 'failureAccountSignedOut' | 'failureAccountSignInRequired' | 'clockDate' | 'clockDateYear' | 'copyLabel' | 'copiedLabel' | 'branchLabel' | 'branchUnavailableLabel' | 'turnUsageTitle' | 'turnUsageModel' | 'turnUsageCacheHit' | 'turnUsageInput' | 'turnUsageCacheRead' | 'turnUsageCacheWrite' | 'turnUsageOutput' | 'turnUsageReasoning' | 'turnUsageConsumed' | 'turnUsageCount' | 'numberThousand' | 'numberMillion' | 'numberGroupSeparator' | 'stepProcessDoneThinking' | 'stepProcessDoneRead' | 'stepProcessDoneReadImage' | 'stepProcessDoneWrite' | 'stepProcessDoneSearch' | 'stepProcessDoneEdit' | 'stepProcessDoneCommands' | 'stepProcessDoneCode' | 'stepProcessDoneWebSearch' | 'stepProcessDoneWebFetch' | 'stepProcessDoneSubagents' | 'stepProcessDonePlan' | 'stepProcessDoneQuestions' | 'stepProcessDoneTools' | 'stepProcessJoinTwo' | 'stepProcessComma' | 'stepProcessSharedPrefix' | 'stepProcessMore' | 'toolTitleRead' | 'toolTitleReadImage' | 'toolTitleGrep' | 'toolTitleGlob' | 'toolTitleBash' | 'toolTitleWrite' | 'toolTitleEdit' | 'toolTitleCode' | 'toolTitleWebSearch' | 'toolTitleWebFetch' | 'toolTitleGeneric' | 'toolTitleSearch' | 'toolInputLabel' | 'toolOutputLabel' | 'rowPreparing' | 'rowRunning' | 'rowFailed' | 'rowStopped' | 'commandRunning' | 'commandFailed' | 'commandDone' | 'commandTitle' | 'collapseLabel' | 'readWindow' | 'readCollapseAria' | 'readExpandAria' | 'readExpandRest' | 'terminalSignal' | 'terminalExitCode' | 'terminalNoExitCode' | 'terminalRunning' | 'terminalFailed' | 'terminalDone' | 'terminalNoOutput' | 'terminalCollapseAria' | 'terminalExpandAria' | 'terminalExpandRest' | 'terminalCommandLine' | 'terminalSendInput' | 'terminalSession' | 'codeBlockLabel' | 'diffWrapLabel' | 'diffUnwrapLabel' | 'diffCollapseAria' | 'diffExpandAria' | 'diffExpandRest' | 'sessionArchived' | 'sessionHeading' | 'changesSingle' | 'changesMulti' | 'changesBinary' | 'changesAll' | 'changesCollapse' | 'changesOversized' | 'diffLoading' | 'diffMissing' | 'diffError' | 'diffBinary' | 'diffOversized' | 'diffCreated' | 'diffDeleted' | 'diffUnchanged' | 'diffCoarse' | 'diffTruncated' | 'diffWrap' | 'diffNowrap' | 'continueBranch' | 'forkConfirmTitle' | 'forkConfirmText' | 'forkConfirmAccept' | 'forkWorking' | 'forkFailed' | 'deliverRowTitle' | 'deliverRowPreparing' | 'deliverRowRunning' | 'deliverRowOk' | 'deliverRowError' | 'deliverRowStopped' | 'deliverFileLabel' | 'deliverPreviewHint' | 'deliverPreviewCard' | 'deliverAll' | 'deliverCollapse' | 'deliverExpandAria' | 'deliverCollapseAria' | 'composerPlaceholder' | 'composerHint' | 'dtPlaceholder' | 'dtStart' | 'dtEnd' | 'dtToday' | 'dtNow' | 'dtClear' | 'dtHour' | 'dtMinute' | 'dtSecond' | 'dtPrevYear' | 'dtPrevMonth' | 'dtNextMonth' | 'dtNextYear' | 'dtInvalidRange' | 'fieldClear' | 'fieldDecrease' | 'fieldIncrease' | 'inputUndo' | 'inputAction'
10
+ export type UtilMessageKey = 'sessionLoading' | 'sessionFailed' | 'sessionEmpty' | 'explorerLoading' | 'loadingDefault' | 'explorerFailed' | 'explorerRoot' | 'explorerTruncated' | 'explorerEmptyDir' | 'explorerLevels' | 'explorerExpand' | 'explorerCollapse' | 'explorerEnter' | 'explorerRootName' | 'explorerCrumbsAria' | 'explorerPickFile' | 'explorerPickDir' | 'explorerPickDirAria' | 'explorerRootDir' | 'previewClose' | 'previewCopyPath' | 'previewRefresh' | 'previewRender' | 'previewSource' | 'previewMdSwitchAria' | 'previewHtmlSwitchAria' | 'previewLoadMore' | 'previewTruncated' | 'previewOfficeUnavailable' | 'previewOfficeNoSession' | 'previewRenderFailed' | 'previewBadPayload' | 'previewOutside' | 'previewNotFound' | 'previewNotDirectory' | 'previewNotFile' | 'previewTooLarge' | 'previewNotText' | 'previewFailedCode' | 'mdCopy' | 'mdCopied' | 'mdCode' | 'mdWrap' | 'mdUnwrap' | 'mdFootnotes' | 'cardToggle' | 'tableEmpty' | 'tableLoading' | 'tableLoadingMore' | 'tableNoMore' | 'paginationAria' | 'paginationPrev' | 'paginationNext' | 'paginationPage' | 'paginationTotal' | 'paginationTotalZero' | 'paginationPageSizeOption' | 'paginationPageSizeAria' | 'modalClose' | 'dockClose' | 'dockResize' | 'dockCollapse' | 'dockExpand' | 'backToTop' | 'quickToolbarAria' | 'errorRetry' | 'confirm' | 'cancel' | 'dialogOk' | 'pickerPlaceholder' | 'pickerClear' | 'pickerEmpty' | 'pickerNoMatch' | 'pickerSearch' | 'pickerSelected' | 'pickerMaxReached' | 'pickerDegraded' | 'modelProvider' | 'modelModel' | 'modelDefault' | 'workspaceAll' | 'relNow' | 'relInJustNow' | 'relInMinutes' | 'relInHours' | 'relInDays' | 'relInMonths' | 'relInYears' | 'relJustNow' | 'relMinutesAgo' | 'relHoursAgo' | 'relDaysAgo' | 'relWeeksAgo' | 'relMonthsAgo' | 'relYearsAgo' | 'codeCopy' | 'codeCopied' | 'sessionUnknownKind' | 'sessionLoadOlder' | 'sessionProcess' | 'triggerRequest' | 'triggerGoal' | 'triggerAgent' | 'triggerTeam' | 'triggerSubagent' | 'triggerGithub' | 'triggerWebhook' | 'triggerSchedule' | 'triggerJob' | 'triggerPlugin' | 'triggerExplanation' | 'turnProcessTook' | 'turnProcessWorked' | 'turnProcessFailed' | 'turnStopped' | 'chatDeepDiving' | 'chatDeepDivingFor' | 'reasoningRunning' | 'jsonTruncated' | 'failureInterrupted' | 'thinkLabel' | 'durationSecondUnit' | 'durationMinuteUnit' | 'durationHourUnit' | 'durationMilliseconds' | 'retryActive' | 'retryCancelled' | 'retryStarted' | 'retryScheduled' | 'retryStatus' | 'retryDelay' | 'retryFailure' | 'turnErrorTitle' | 'accountStopped' | 'maxTokensTitle' | 'maxTokensHint' | 'failureAuth' | 'failureQuota' | 'failureAccountSignedOut' | 'failureAccountSignInRequired' | 'clockDate' | 'clockDateYear' | 'copyLabel' | 'copiedLabel' | 'branchLabel' | 'branchUnavailableLabel' | 'turnUsageTitle' | 'turnUsageModel' | 'turnUsageCacheHit' | 'turnUsageInput' | 'turnUsageCacheRead' | 'turnUsageCacheWrite' | 'turnUsageOutput' | 'turnUsageReasoning' | 'turnUsageConsumed' | 'turnUsageCount' | 'numberThousand' | 'numberMillion' | 'numberGroupSeparator' | 'stepProcessDoneThinking' | 'stepProcessDoneRead' | 'stepProcessDoneReadImage' | 'stepProcessDoneWrite' | 'stepProcessDoneSearch' | 'stepProcessDoneEdit' | 'stepProcessDoneCommands' | 'stepProcessDoneCode' | 'stepProcessDoneWebSearch' | 'stepProcessDoneWebFetch' | 'stepProcessDoneSubagents' | 'stepProcessDonePlan' | 'stepProcessDoneQuestions' | 'stepProcessDoneTools' | 'stepProcessJoinTwo' | 'stepProcessComma' | 'stepProcessSharedPrefix' | 'stepProcessMore' | 'toolTitleRead' | 'toolTitleReadImage' | 'toolTitleGrep' | 'toolTitleGlob' | 'toolTitleBash' | 'toolTitleWrite' | 'toolTitleEdit' | 'toolTitleCode' | 'toolTitleWebSearch' | 'toolTitleWebFetch' | 'toolTitleGeneric' | 'toolTitleSearch' | 'toolInputLabel' | 'toolOutputLabel' | 'rowPreparing' | 'rowRunning' | 'rowFailed' | 'rowStopped' | 'commandRunning' | 'commandFailed' | 'commandDone' | 'commandTitle' | 'collapseLabel' | 'readWindow' | 'readCollapseAria' | 'readExpandAria' | 'readExpandRest' | 'terminalSignal' | 'terminalExitCode' | 'terminalNoExitCode' | 'terminalRunning' | 'terminalFailed' | 'terminalDone' | 'terminalNoOutput' | 'terminalCollapseAria' | 'terminalExpandAria' | 'terminalExpandRest' | 'terminalCommandLine' | 'terminalSendInput' | 'terminalSession' | 'codeBlockLabel' | 'diffWrapLabel' | 'diffUnwrapLabel' | 'diffCollapseAria' | 'diffExpandAria' | 'diffExpandRest' | 'sessionArchived' | 'sessionHeading' | 'changesSingle' | 'changesMulti' | 'changesBinary' | 'changesAll' | 'changesCollapse' | 'changesOversized' | 'diffLoading' | 'diffMissing' | 'diffError' | 'diffBinary' | 'diffOversized' | 'diffCreated' | 'diffDeleted' | 'diffUnchanged' | 'diffCoarse' | 'diffTruncated' | 'diffWrap' | 'diffNowrap' | 'continueBranch' | 'forkConfirmTitle' | 'forkConfirmText' | 'forkConfirmAccept' | 'forkWorking' | 'forkFailed' | 'deliverRowTitle' | 'deliverRowPreparing' | 'deliverRowRunning' | 'deliverRowOk' | 'deliverRowError' | 'deliverRowStopped' | 'deliverFileLabel' | 'deliverPreviewHint' | 'deliverPreviewCard' | 'deliverAll' | 'deliverCollapse' | 'deliverExpandAria' | 'deliverCollapseAria' | 'composerPlaceholder' | 'composerHint' | 'dtPlaceholder' | 'dtStart' | 'dtEnd' | 'dtToday' | 'dtNow' | 'dtClear' | 'dtHour' | 'dtMinute' | 'dtSecond' | 'dtPrevYear' | 'dtPrevMonth' | 'dtNextMonth' | 'dtNextYear' | 'dtInvalidRange' | 'fieldClear' | 'fieldDecrease' | 'fieldIncrease' | 'inputUndo' | 'inputAction'
11
11
  /** 会话里的图片块占位(非 vision 渲染处)。 */
12
12
  | 'sessionImage'
13
13
  /** 官方样式未命中时的可见提示。 */
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -118,16 +118,18 @@ const DICT = {
118
118
  triggerJob: '后台任务状态更新',
119
119
  triggerPlugin: '插件状态更新',
120
120
  triggerExplanation: '这条通知触发了本轮回复。',
121
- turnProcessTook: '用时 {duration}',
122
- turnProcessDeepDiving: '深度求索中,用时{duration}',
123
- turnProcessWorked: '已完成工作',
121
+ turnProcessTook: '已完成,用时 ',
122
+ turnProcessWorked: '已完成',
124
123
  turnProcessFailed: '处理失败',
125
124
  turnStopped: '已停止',
126
125
  chatDeepDiving: '深度求索中',
126
+ chatDeepDivingFor: '深度求索中,用时 {duration} ···',
127
+ reasoningRunning: '运行中',
128
+ jsonTruncated: '… 已截断,共 {total} 字符',
127
129
  thinkLabel: '思考',
128
- durationSeconds: '{seconds}秒',
129
- durationMinutes: '{minutes}分{seconds}秒',
130
- durationHours: '{hours}小时{minutes}分{seconds}秒',
130
+ durationSecondUnit: '秒',
131
+ durationMinuteUnit: '分',
132
+ durationHourUnit: '小时',
131
133
  durationMilliseconds: '{milliseconds}毫秒',
132
134
  retryActive: '正在重试模型请求',
133
135
  retryCancelled: '模型请求重试已取消',
@@ -140,6 +142,7 @@ const DICT = {
140
142
  accountStopped: '任务已停止',
141
143
  maxTokensTitle: '已达到输出 token 上限',
142
144
  maxTokensHint: '回答被截断,已有输出保留在对话中。发送“继续”可让模型接着输出。',
145
+ failureInterrupted: 'DSH 进程在本轮完成前退出(例如被强制结束、崩溃或关闭超时),重新启动后本轮已中止。未完成的工具调用结果未知。',
143
146
  failureAuth: 'API 密钥无效',
144
147
  failureQuota: '当前请求的额度已用尽',
145
148
  failureAccountSignedOut: '任务已因退出 DeepSeek 登录而停止。',
@@ -403,16 +406,18 @@ const DICT = {
403
406
  triggerJob: 'Background task status update',
404
407
  triggerPlugin: 'Plugin status update',
405
408
  triggerExplanation: 'This notification triggered the reply below.',
406
- turnProcessTook: 'Took {duration}',
407
- turnProcessDeepDiving: 'Thinking, {duration}',
408
- turnProcessWorked: 'Work completed',
409
+ turnProcessTook: 'Completed in ',
410
+ turnProcessWorked: 'Completed',
409
411
  turnProcessFailed: 'Failed',
410
412
  turnStopped: 'Stopped',
411
413
  chatDeepDiving: 'Thinking',
414
+ chatDeepDivingFor: 'Deep diving for {duration} ···',
415
+ reasoningRunning: 'Running',
416
+ jsonTruncated: '… truncated, {total} characters total',
412
417
  thinkLabel: 'Think',
413
- durationSeconds: '{seconds}s',
414
- durationMinutes: '{minutes}m {seconds}s',
415
- durationHours: '{hours}h {minutes}m {seconds}s',
418
+ durationSecondUnit: 's',
419
+ durationMinuteUnit: 'm ',
420
+ durationHourUnit: 'h ',
416
421
  durationMilliseconds: '{milliseconds}ms',
417
422
  retryActive: 'Retrying model request',
418
423
  retryCancelled: 'Model request retry cancelled',
@@ -425,6 +430,7 @@ const DICT = {
425
430
  accountStopped: 'Task stopped',
426
431
  maxTokensTitle: 'Output token limit reached',
427
432
  maxTokensHint: 'The reply was cut off; earlier output is preserved in the conversation. Send "continue" to let the model resume.',
433
+ failureInterrupted: 'The DSH process exited before this turn finished (for example, it was killed, crashed, or timed out while shutting down), so the turn was closed when DSH restarted. Unfinished tool calls have unknown outcomes.',
428
434
  failureAuth: 'API key is invalid',
429
435
  failureQuota: 'Request quota exhausted.',
430
436
  failureAccountSignedOut: 'Stopped because you signed out of DeepSeek.',
@@ -538,8 +544,8 @@ const DICT = {
538
544
  forkConfirmAccept: 'Fork & open',
539
545
  forkWorking: 'Forking…',
540
546
  forkFailed: 'Fork failed: {error}',
541
- deliverRowTitle: 'Deliver files',
542
- deliverRowPreparing: 'Preparing delivery',
547
+ deliverRowTitle: 'Present files',
548
+ deliverRowPreparing: 'Preparing deliverables',
543
549
  deliverRowRunning: 'Delivering',
544
550
  deliverRowOk: 'Delivered',
545
551
  deliverRowError: 'Delivery failed',
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/utils/i18n.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,18 @@ setStyleKit(createStyleKit({ id: 'dsh-task-reminder-ui' }))
8
8
  // 控件样式不用你挂:每个控件首次渲染时自注入自己那份 CSS(幂等),
9
9
  // 用不到的控件其 CSS 也不会进你的包。`
10
10
 
11
+ const flipExample = `import { FlipText } from 'dsh-plugin-core/ui'
12
+
13
+ // 换文案 = 改 text,动效自己放(旧的上移出、新的从下进)
14
+ const [step, setStep] = useState('正在扫描工作区…')
15
+ h(FlipText, { text: step })
16
+
17
+ // 溢出:放不下三点省略,hover 跑马灯
18
+ h(FlipText, { text: step, maxWidth: 220 })
19
+
20
+ // 宽度三档:width 优先,其次 minWidth / maxWidth
21
+ h(FlipText, { text: step, width: 200 })`
22
+
11
23
  const cardExample = `import { Card, Chip, StripCard } from 'dsh-plugin-core/ui'
12
24
 
13
25
  h(Card, {
@@ -270,7 +282,7 @@ const doc: DocTopic = {
270
282
  'Button', 'IconButton', 'Segmented', 'SplitGroup', 'Input', 'PrefixedInput', 'NumberInput', 'Textarea',
271
283
  'Checkbox', 'fieldMetricsOf', 'Picker', 'WorkspacePicker', 'ModelPicker', 'DateTimePicker', 'Surface', 'Card', 'StripCard',
272
284
  'Chip', 'Table', 'Pagination', 'Modal', 'SideSheet', 'FieldHint', 'setTooltipRenderer', 'showToast', 'notify', 'showHostToast',
273
- 'Loader', 'LoaderBar', 'Loading', 'RunningBlocks', 'SectionHead', 'MarqueeText', 'LiveText',
285
+ 'Loader', 'LoaderBar', 'Loading', 'RunningBlocks', 'SectionHead', 'MarqueeText', 'FlipText', 'LiveText',
274
286
  'QuickToolbar', 'startResizeLayoutWidth', 'PanelDock', 'createPanelDock', 'DockPanel',
275
287
  'ensureControls', 'setStyleKit',
276
288
  ],
@@ -622,6 +634,37 @@ const doc: DocTopic = {
622
634
  },
623
635
  ],
624
636
  },
637
+ {
638
+ id: 'flip-text',
639
+ heading: { zh: 'FlipText(翻牌文本)', en: 'FlipText' },
640
+ prose: [
641
+ {
642
+ zh: '一行文字,换一句翻一次牌:旧的上移出、新的从下进。**只给文本,动效自己放** —— `text` 变了就翻,没变不动(同一句重复设置不重播)。**空串 = 没有文案**:不渲染、不占位,同一块地方复用时靠它把上一句清干净;清空后再给值是直接出现,不从下方翻上来。',
643
+ en: 'One line of text that flips on every change: the old line slides up and out, the new one comes in from below. **Give it text; it owns the motion** — a changed `text` flips, an unchanged one does nothing (setting the same line twice does not replay). **An empty string means no line at all**: nothing rendered, no space taken, which is how a reused spot gets cleared; the next value then appears outright instead of sliding in.',
644
+ },
645
+ {
646
+ zh: '溢出与 MarqueeText 同一套:单行、放不下三点省略,鼠标移上去跑马灯(复用同一个实现,不重复测宽)。高度恒为一行,永不换行。',
647
+ en: 'Overflow behaves exactly like MarqueeText: one line, an ellipsis when it does not fit, marquee on hover (same implementation, no second width measurement). Height stays at one line and it never wraps.',
648
+ },
649
+ {
650
+ zh: '宽度三档同 Button / Chip:`width` 优先,`width` 未设时 `minWidth` / `maxWidth` 生效;三者都不传 = 随父容器(flex 子项自然伸缩,弹窗底栏就是这么用的)。要放进弹窗底栏左侧**不要自己包**,直接用 `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` 的 `notice`。',
651
+ en: 'Widths follow Button / Chip: `width` wins; `minWidth` / `maxWidth` apply only when it is unset; none of the three means "follow the parent" (a flex child stretches naturally — that is how the dialog footer uses it). To put it on the left of a dialog footer, use the `notice` prop on `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` rather than wrapping it yourself.',
652
+ },
653
+ ],
654
+ api: [
655
+ {
656
+ id: 'ui-flip-text',
657
+ rows: [
658
+ { name: 'text', type: 'string', def: '—(必填)', desc: { zh: '当前文本;变了就翻一次牌。**空串 = 没有文案**:不渲染、不占位(同一块地方复用靠它清场);清空后再给值是直接出现,不从下方翻上来', en: 'Current text; a change flips it once. **An empty string means no line at all**: nothing rendered, no space taken (that is how a reused spot is cleared); the next value appears outright instead of sliding in' } },
659
+ { name: 'width', type: 'number | string', def: '—', desc: { zh: '固定宽(px 或任意 CSS 宽度);与 minWidth / maxWidth 互斥,一旦设定后两者自动失效', en: 'Fixed width (px or any CSS width); mutually exclusive with minWidth/maxWidth — once set, the other two are ignored' } },
660
+ { name: 'minWidth', type: 'number | string', def: '—', desc: { zh: '最小宽:width 未设时生效', en: 'Minimum width: applies only when width is unset' } },
661
+ { name: 'maxWidth', type: 'number | string', def: '—', desc: { zh: '最大宽:width 未设时生效,文字超出折叠成省略号,hover 以跑马灯展开', en: 'Maximum width: applies only when width is unset; overflowing text collapses to an ellipsis and marquees on hover' } },
662
+ { name: 'className', type: 'string', def: '—', desc: { zh: '追加 class(只补字体 / 颜色这类皮肤,布局归组件自己)', en: 'Extra class (font / colour skin only; layout belongs to the component)' } },
663
+ ],
664
+ },
665
+ ],
666
+ code: [{ id: 'ui-flip-text-example', lang: 'tsx', src: flipExample }],
667
+ },
625
668
  {
626
669
  id: 'table',
627
670
  heading: { zh: 'Table(表格)', en: 'Table' },
@@ -809,6 +852,7 @@ const doc: DocTopic = {
809
852
  { name: 'maxWidth', type: 'string', def: '按 size', desc: { zh: '任意 CSS 值,覆盖 size 的宽度上限;不要用 vw(遮罩已按右侧分栏让位)', en: 'Any CSS value, overriding the size’s max width; avoid vw (the mask already yielded to the right column)' } },
810
853
  { name: 'hideHeader', type: 'boolean', def: "'false'", desc: { zh: '不渲染头部(沉浸式)', en: 'Skip header (immersive)' } },
811
854
  { name: 'footer', type: 'ReactNode', def: '—', desc: { zh: '底栏(按钮区;上下内距相等、内容垂直居中)', en: 'Footer (button area; symmetric padding, vertically centred)' } },
855
+ { name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示:换文案即翻牌,超长省略 + hover 跑马灯。不传 = 不占位、与以前完全一样;**传空字符串 = 清场**;footer 也可不给(它会自己撑起底栏)', en: 'One-line progress notice on the **left** of the footer: changing the string flips it, overflow elides and marquees on hover. Omitted = nothing at all (unchanged behaviour); **an empty string clears it**; `footer` may be omitted too — the notice alone brings the footer up' } },
812
856
  { name: 'footerDivider', type: 'boolean', def: "'true'", desc: { zh: '底栏上面的那条分隔线;传 false 关掉(sm 确认框本来就没有)', en: 'The divider above the footer; pass false to drop it (sm dialogs never have one)' } },
813
857
  { name: 'className', type: 'string', def: '—', desc: { zh: '追加 class(只补布局 / 视觉修饰,别覆盖皮肤)', en: 'Extra class (layout / visual tweaks only; do not override the skin)' } },
814
858
  { name: 'children', type: 'ReactNode', def: '—', desc: { zh: '主体', en: 'Body' } },
@@ -824,6 +868,7 @@ const doc: DocTopic = {
824
868
  { name: 'loadingText', type: 'boolean', def: 'true', desc: { zh: '传 false:loading 时两颗钮清文案、锁住有文案的宽度、只留居中的圈(见 `Button.loadingText`)', en: 'Pass false: while loading, both buttons drop their labels, freeze at the labelled width and show a centred spinner (see `Button.loadingText`)' } },
825
869
  { name: 'onConfirm / onCancel', type: '() => unknown', def: '—', desc: { zh: '确认 / 取消回调;返回 Promise 时按钮转圈、整框锁死,settle 后恢复;返回 `false` 不关', en: 'Confirm / cancel callback; a Promise makes its button spin and locks the dialog until it settles; `false` keeps it open' } },
826
870
  { name: 'confirmLoading / cancelLoading', type: 'boolean', def: 'false', desc: { zh: '外部驱动对应按钮 loading,与按钮自身异步状态取或', en: 'External loading for that button, OR-ed with its own async state' } },
871
+ { name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示(loading 期间逐步换文案、换一句翻一次牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(同一块地方复用下一轮时用它把上一句清掉)', en: 'One-line progress notice on the **left** of the footer (swap the string while loading, each change flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (use it when the same spot is reused for the next round)' } },
827
872
  { name: 'closeOnMask', type: 'boolean', def: "'true'", desc: { zh: '点遮罩关闭(等于取消)', en: 'Close on mask click (treated as cancel)' } },
828
873
  { name: 'size', type: 'ModalSize', def: "'sm'", desc: { zh: '尺寸档', en: 'Size tier' } },
829
874
  { name: 'translate', type: 'Translate', def: '内置字典', desc: { zh: '覆盖确定 / 取消文案', en: 'Override confirm / cancel copy' } },
@@ -839,6 +884,7 @@ const doc: DocTopic = {
839
884
  { name: 'loadingText', type: 'boolean', def: 'true', desc: { zh: '传 false:loading 时清文案、锁住有文案的宽度、只留居中的圈(见 `Button.loadingText`)', en: 'Pass false: while loading, drop the label, freeze at the labelled width and show a centred spinner (see `Button.loadingText`)' } },
840
885
  { name: 'onConfirm', type: '() => unknown', def: '—', desc: { zh: '确认 / 遮罩 / Esc 的统一出口;返回 Promise 时转圈锁框,返回 `false` 不关', en: 'Single exit for confirm / mask / Esc; a Promise spins and locks it, `false` keeps it open' } },
841
886
  { name: 'confirmLoading', type: 'boolean', def: 'false', desc: { zh: '外部驱动按钮 loading,与按钮自身异步状态取或', en: 'External button loading, OR-ed with its own async state' } },
887
+ { name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示(loading 期间逐步换文案、换一句翻一次牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(同一块地方复用下一轮时用它把上一句清掉)', en: 'One-line progress notice on the **left** of the footer (swap the string while loading, each change flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (use it when the same spot is reused for the next round)' } },
842
888
  { name: 'closeOnMask', type: 'boolean', def: "'true'", desc: { zh: '点遮罩关闭', en: 'Close on mask click' } },
843
889
  { name: 'size', type: 'ModalSize', def: "'sm'", desc: { zh: '尺寸档', en: 'Size tier' } },
844
890
  { name: 'translate', type: 'Translate', def: '内置字典', desc: { zh: '覆盖按钮文案', en: 'Override the button copy' } },
@@ -889,6 +935,7 @@ const doc: DocTopic = {
889
935
  { name: 'width / minWidth / maxWidth', type: 'number / number / number', def: '460 / 320 / —', desc: { zh: '初始宽度 / 拖拽下限 / 拖拽上限(px;上限缺省 = 遮罩盒宽)', en: 'Initial width / resize floor / resize ceiling (px; ceiling defaults to the mask box)' } },
890
936
  { name: 'resizable', type: 'boolean', def: 'true', desc: { zh: '能否拖宽(关掉就没有拖拽条)', en: 'Whether it resizes by dragging (off = no handle)' } },
891
937
  { name: 'footer / children', type: 'ReactNode / ReactNode', def: '— / —', desc: { zh: '底栏 / 主体(主体是唯一滚动容器)', en: 'Footer / body (the body is the only scroll container)' } },
938
+ { name: 'notice', type: 'string', def: '—', desc: { zh: '底栏**左侧**的一行过程提示(换文案即翻牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(抽屉常驻渲染,关掉再开时用它清上一轮)', en: 'One-line progress notice on the **left** of the footer (changing it flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (the drawer stays mounted, so this is how the previous round is wiped)' } },
892
939
  { name: 'translate', type: 'Translate', def: '内置字典', desc: { zh: '覆盖关闭 / 拖拽条的文案', en: 'Override close / resize copy' } },
893
940
  ],
894
941
  },
package/docs/help/ui.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  > EN: ui — base controls
6
6
 
7
- 导出:Button、IconButton、Segmented、SplitGroup、Input、PrefixedInput、NumberInput、Textarea、Checkbox、fieldMetricsOf、Picker、WorkspacePicker、ModelPicker、DateTimePicker、Surface、Card、StripCard、Chip、Table、Pagination、Modal、SideSheet、FieldHint、setTooltipRenderer、showToast、notify、showHostToast、Loader、LoaderBar、Loading、RunningBlocks、SectionHead、MarqueeText、LiveText、QuickToolbar、startResizeLayoutWidth、PanelDock、createPanelDock、DockPanel、ensureControls、setStyleKit
7
+ 导出:Button、IconButton、Segmented、SplitGroup、Input、PrefixedInput、NumberInput、Textarea、Checkbox、fieldMetricsOf、Picker、WorkspacePicker、ModelPicker、DateTimePicker、Surface、Card、StripCard、Chip、Table、Pagination、Modal、SideSheet、FieldHint、setTooltipRenderer、showToast、notify、showHostToast、Loader、LoaderBar、Loading、RunningBlocks、SectionHead、MarqueeText、FlipText、LiveText、QuickToolbar、startResizeLayoutWidth、PanelDock、createPanelDock、DockPanel、ensureControls、setStyleKit
8
8
 
9
9
  ## 概览
10
10
 
@@ -397,6 +397,44 @@ h(StripCard, {
397
397
  | `className` | `string` | — | 追加 class(只允许补布局,不许覆盖皮肤) | Extra class (layout only, never overrides the skin) |
398
398
  | `children` | `ReactNode` | — | 标签内容(maxWidth + 纯文字时自动接跑马灯) | Tag content (auto-marqueed when maxWidth + plain text) |
399
399
 
400
+ ## FlipText(翻牌文本)
401
+
402
+ > EN: FlipText
403
+
404
+ 一行文字,换一句翻一次牌:旧的上移出、新的从下进。**只给文本,动效自己放** —— `text` 变了就翻,没变不动(同一句重复设置不重播)。**空串 = 没有文案**:不渲染、不占位,同一块地方复用时靠它把上一句清干净;清空后再给值是直接出现,不从下方翻上来。
405
+
406
+ > EN: One line of text that flips on every change: the old line slides up and out, the new one comes in from below. **Give it text; it owns the motion** — a changed `text` flips, an unchanged one does nothing (setting the same line twice does not replay). **An empty string means no line at all**: nothing rendered, no space taken, which is how a reused spot gets cleared; the next value then appears outright instead of sliding in.
407
+
408
+ 溢出与 MarqueeText 同一套:单行、放不下三点省略,鼠标移上去跑马灯(复用同一个实现,不重复测宽)。高度恒为一行,永不换行。
409
+
410
+ > EN: Overflow behaves exactly like MarqueeText: one line, an ellipsis when it does not fit, marquee on hover (same implementation, no second width measurement). Height stays at one line and it never wraps.
411
+
412
+ 宽度三档同 Button / Chip:`width` 优先,`width` 未设时 `minWidth` / `maxWidth` 生效;三者都不传 = 随父容器(flex 子项自然伸缩,弹窗底栏就是这么用的)。要放进弹窗底栏左侧**不要自己包**,直接用 `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` 的 `notice`。
413
+
414
+ > EN: Widths follow Button / Chip: `width` wins; `minWidth` / `maxWidth` apply only when it is unset; none of the three means "follow the parent" (a flex child stretches naturally — that is how the dialog footer uses it). To put it on the left of a dialog footer, use the `notice` prop on `Modal` / `ConfirmModal` / `AlertModal` / `SideSheet` rather than wrapping it yourself.
415
+
416
+ | 参数 | 类型 | 默认 | 说明(zh) | 说明(en) |
417
+ |---|---|---|---|---|
418
+ | `text` | `string` | —(必填) | 当前文本;变了就翻一次牌。**空串 = 没有文案**:不渲染、不占位(同一块地方复用靠它清场);清空后再给值是直接出现,不从下方翻上来 | Current text; a change flips it once. **An empty string means no line at all**: nothing rendered, no space taken (that is how a reused spot is cleared); the next value appears outright instead of sliding in |
419
+ | `width` | `number \| string` | — | 固定宽(px 或任意 CSS 宽度);与 minWidth / maxWidth 互斥,一旦设定后两者自动失效 | Fixed width (px or any CSS width); mutually exclusive with minWidth/maxWidth — once set, the other two are ignored |
420
+ | `minWidth` | `number \| string` | — | 最小宽:width 未设时生效 | Minimum width: applies only when width is unset |
421
+ | `maxWidth` | `number \| string` | — | 最大宽:width 未设时生效,文字超出折叠成省略号,hover 以跑马灯展开 | Maximum width: applies only when width is unset; overflowing text collapses to an ellipsis and marquees on hover |
422
+ | `className` | `string` | — | 追加 class(只补字体 / 颜色这类皮肤,布局归组件自己) | Extra class (font / colour skin only; layout belongs to the component) |
423
+
424
+ ```tsx id="ui-flip-text-example"
425
+ import { FlipText } from 'dsh-plugin-core/ui'
426
+
427
+ // 换文案 = 改 text,动效自己放(旧的上移出、新的从下进)
428
+ const [step, setStep] = useState('正在扫描工作区…')
429
+ h(FlipText, { text: step })
430
+
431
+ // 溢出:放不下三点省略,hover 跑马灯
432
+ h(FlipText, { text: step, maxWidth: 220 })
433
+
434
+ // 宽度三档:width 优先,其次 minWidth / maxWidth
435
+ h(FlipText, { text: step, width: 200 })
436
+ ```
437
+
400
438
  ## Table(表格)
401
439
 
402
440
  > EN: Table
@@ -681,6 +719,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
681
719
  | `maxWidth` | `string` | 按 size | 任意 CSS 值,覆盖 size 的宽度上限;不要用 vw(遮罩已按右侧分栏让位) | Any CSS value, overriding the size’s max width; avoid vw (the mask already yielded to the right column) |
682
720
  | `hideHeader` | `boolean` | 'false' | 不渲染头部(沉浸式) | Skip header (immersive) |
683
721
  | `footer` | `ReactNode` | — | 底栏(按钮区;上下内距相等、内容垂直居中) | Footer (button area; symmetric padding, vertically centred) |
722
+ | `notice` | `string` | — | 底栏**左侧**的一行过程提示:换文案即翻牌,超长省略 + hover 跑马灯。不传 = 不占位、与以前完全一样;**传空字符串 = 清场**;footer 也可不给(它会自己撑起底栏) | One-line progress notice on the **left** of the footer: changing the string flips it, overflow elides and marquees on hover. Omitted = nothing at all (unchanged behaviour); **an empty string clears it**; `footer` may be omitted too — the notice alone brings the footer up |
684
723
  | `footerDivider` | `boolean` | 'true' | 底栏上面的那条分隔线;传 false 关掉(sm 确认框本来就没有) | The divider above the footer; pass false to drop it (sm dialogs never have one) |
685
724
  | `className` | `string` | — | 追加 class(只补布局 / 视觉修饰,别覆盖皮肤) | Extra class (layout / visual tweaks only; do not override the skin) |
686
725
  | `children` | `ReactNode` | — | 主体 | Body |
@@ -694,6 +733,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
694
733
  | `loadingText` | `boolean` | true | 传 false:loading 时两颗钮清文案、锁住有文案的宽度、只留居中的圈(见 `Button.loadingText`) | Pass false: while loading, both buttons drop their labels, freeze at the labelled width and show a centred spinner (see `Button.loadingText`) |
695
734
  | `onConfirm / onCancel` | `() => unknown` | — | 确认 / 取消回调;返回 Promise 时按钮转圈、整框锁死,settle 后恢复;返回 `false` 不关 | Confirm / cancel callback; a Promise makes its button spin and locks the dialog until it settles; `false` keeps it open |
696
735
  | `confirmLoading / cancelLoading` | `boolean` | false | 外部驱动对应按钮 loading,与按钮自身异步状态取或 | External loading for that button, OR-ed with its own async state |
736
+ | `notice` | `string` | — | 底栏**左侧**的一行过程提示(loading 期间逐步换文案、换一句翻一次牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(同一块地方复用下一轮时用它把上一句清掉) | One-line progress notice on the **left** of the footer (swap the string while loading, each change flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (use it when the same spot is reused for the next round) |
697
737
  | `closeOnMask` | `boolean` | 'true' | 点遮罩关闭(等于取消) | Close on mask click (treated as cancel) |
698
738
  | `size` | `ModalSize` | 'sm' | 尺寸档 | Size tier |
699
739
  | `translate` | `Translate` | 内置字典 | 覆盖确定 / 取消文案 | Override confirm / cancel copy |
@@ -707,6 +747,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
707
747
  | `loadingText` | `boolean` | true | 传 false:loading 时清文案、锁住有文案的宽度、只留居中的圈(见 `Button.loadingText`) | Pass false: while loading, drop the label, freeze at the labelled width and show a centred spinner (see `Button.loadingText`) |
708
748
  | `onConfirm` | `() => unknown` | — | 确认 / 遮罩 / Esc 的统一出口;返回 Promise 时转圈锁框,返回 `false` 不关 | Single exit for confirm / mask / Esc; a Promise spins and locks it, `false` keeps it open |
709
749
  | `confirmLoading` | `boolean` | false | 外部驱动按钮 loading,与按钮自身异步状态取或 | External button loading, OR-ed with its own async state |
750
+ | `notice` | `string` | — | 底栏**左侧**的一行过程提示(loading 期间逐步换文案、换一句翻一次牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(同一块地方复用下一轮时用它把上一句清掉) | One-line progress notice on the **left** of the footer (swap the string while loading, each change flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (use it when the same spot is reused for the next round) |
710
751
  | `closeOnMask` | `boolean` | 'true' | 点遮罩关闭 | Close on mask click |
711
752
  | `size` | `ModalSize` | 'sm' | 尺寸档 | Size tier |
712
753
  | `translate` | `Translate` | 内置字典 | 覆盖按钮文案 | Override the button copy |
@@ -749,6 +790,7 @@ Modal 是自绘 overlay,不走 react-dom portal。
749
790
  | `width / minWidth / maxWidth` | `number / number / number` | 460 / 320 / — | 初始宽度 / 拖拽下限 / 拖拽上限(px;上限缺省 = 遮罩盒宽) | Initial width / resize floor / resize ceiling (px; ceiling defaults to the mask box) |
750
791
  | `resizable` | `boolean` | true | 能否拖宽(关掉就没有拖拽条) | Whether it resizes by dragging (off = no handle) |
751
792
  | `footer / children` | `ReactNode / ReactNode` | — / — | 底栏 / 主体(主体是唯一滚动容器) | Footer / body (the body is the only scroll container) |
793
+ | `notice` | `string` | — | 底栏**左侧**的一行过程提示(换文案即翻牌,超长省略 + hover 跑马灯)。不传 = 不占位;**传空字符串 = 清场**(抽屉常驻渲染,关掉再开时用它清上一轮) | One-line progress notice on the **left** of the footer (changing it flips; overflow elides and marquees on hover). Omitted = nothing at all; **an empty string clears it** (the drawer stays mounted, so this is how the previous round is wiped) |
752
794
  | `translate` | `Translate` | 内置字典 | 覆盖关闭 / 拖拽条的文案 | Override close / resize copy |
753
795
 
754
796
  ```tsx id="ui-sidesheet-example"
@@ -46,7 +46,7 @@ dsh-plugin-core/
46
46
  ### 2.2 ui
47
47
 
48
48
  - 零件:Button / Input 家族 / Textarea / Checkbox / Segmented / 下拉框 / 搜索框 / 滑轨 /
49
- MarqueeText / LiveText / Field(含错误提示)/ resizer / DateTime / TimeRange
49
+ MarqueeText / FlipText / LiveText / Field(含错误提示)/ resizer / DateTime / TimeRange
50
50
  - 选择器:`Picker`(通用:单选/多选/上限/搜索/分组/空态/降级)、`ModelPicker`、
51
51
  `WorkspacePicker`(选工作区);`FilePicker` 已删(2026-10-20 用户:文件选择框没有用)
52
52
  - 日期时间:`DateTimePicker`(2026-10-24 新增:单值 / 时间段 × 精度 day/hour/minute/second;
@@ -126,6 +126,15 @@ dsh-plugin-core/
126
126
  清文案后读屏名称靠 `aria-label`(字符串 children 自动补,复合 children 由调用方给);
127
127
  首帧就是 loading(没有「有文案的宽度」可量)时锁不到宽,走 ① 的 `width`。
128
128
  loading 圈包进 `.dshpc-btn__icon`(svg 被 1em 规则接管)⇒ 有 icon 的按钮切 loading 宽度零差。
129
+ - **弹窗底栏左侧的过程提示**(2026-11-04 用户拍板):`Modal` / `ConfirmModal` / `AlertModal` / `SideSheet`
130
+ 各加一个 `notice?: string`,渲染在 footer 最左;**不传 = 不占位**,与接入前完全一样(`footer` 也可不给,
131
+ notice 自己撑起底栏)。换文案即翻牌(旧的上移出、新的从下进),单行、超长三点省略、hover 跑马灯 ——
132
+ 跑马灯与省略**复用 `MarqueeText`**,不另写一份测宽;高度恒为一行,永不换行。
133
+ **空串 = 没有文案**(2026-11-04 用户补的要求):不渲染、不占位 —— 底栏那块地方被下一轮复用时,
134
+ 传空串就把上一句清干净;清空后第一次给值是直接出现、不从下方翻上来(没有上一句可翻)。
135
+ 实现分两层(用户拍板「拆成两层、不做引擎、不监听 loading」):控件 `FlipText`(`text` 变了就翻,
136
+ 没变不动;宽度三档与 Button / Chip 同口径:`width` 优先,其次 `minWidth` / `maxWidth`,
137
+ 全不传 = 随父容器)+ 弹窗只做「挂载位 + 透传」。步骤队列、loading 状态一律由调用方 setState 管。
129
138
  - `Loading` 是旧的「自带定位 + 自带 pill 背景」复合件,**保留不删**但标 `@deprecated`,新代码用 `Loader`。
130
139
  - 布局基础:`PanelDock` / `DockPanel` / `createPanelDock`(**可停靠分栏容器**:多面板并存、按组名寻址、拖拽拉栏、宽度记忆;2026-10-20 拍板用此名,替代早先的 `SidebarLayout` / `SplitPane`)。只做右侧;组名与窗口一对一;默认上限 3,超限拒绝新开;不做 tab 切换 / 自动淘汰 / 多份同名;**面板本身始终是布局成员,不做面板浮层**(2026-10-28 补:**收起** = 面板退出布局、另出右侧一只独立的 `position: fixed` 耳朵,点耳朵展开并还原宽度;关闭不留耳朵——耳朵是独立浮层,不是把面板变浮层)。**结构照成熟库口径写 children,`open/close` 只传 id,不把页面树塞进调用参数**
131
140
  - 浮动快捷工具栏:`QuickToolbar`(2026-10-31 用户拍板):右侧一列独立圆钮,纵向**恒贴屏幕底边**(默认 16px);横向默认贴屏幕右缘,传 `anchorId` / `anchor()` 时贴到指定控件右缘外侧,右侧放不下则退回屏幕右缘(控件找不到按跟随窗口处理)。内置回顶部默认 `when:'scroll'`、阈值 320,`backToTop:false` 可关掉,对象可调 `order` / `label` / `threshold`;自定义项 `items` 支持 `icon` / `label` / `onClick` / `visible` / `when` / `order` / `threshold` / `color` / `fgColor`,统一 `onAction`。旧的 `BackToTop` **全部删除**,只保留这一份,不做迁移。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-core",
3
- "version": "0.25.0",
3
+ "version": "0.27.0",
4
4
  "packageManager": "pnpm@12.3.4",
5
5
  "description": "Shared base for DSH plugins: design tokens, UI controls, utils, workspace explorer, session preview",
6
6
  "keywords": [