dsh-plugin-core 0.32.0 → 0.33.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.
- package/dist/adv/explorer/FileBrowser.d.ts +58 -0
- package/dist/adv/explorer/FileBrowser.d.ts.map +1 -0
- package/dist/adv/explorer/FileBrowser.js +632 -0
- package/dist/adv/explorer/FileBrowser.js.map +1 -0
- package/dist/adv/explorer/crumb-nav.d.ts +45 -0
- package/dist/adv/explorer/crumb-nav.d.ts.map +1 -0
- package/dist/adv/explorer/crumb-nav.js +78 -0
- package/dist/adv/explorer/crumb-nav.js.map +1 -0
- package/dist/adv/explorer/crumbs-menu.d.ts +37 -0
- package/dist/adv/explorer/crumbs-menu.d.ts.map +1 -0
- package/dist/adv/explorer/crumbs-menu.js +102 -0
- package/dist/adv/explorer/crumbs-menu.js.map +1 -0
- package/dist/adv/explorer/explorer-css.d.ts +2 -0
- package/dist/adv/explorer/explorer-css.d.ts.map +1 -0
- package/dist/adv/explorer/explorer-css.generated.d.ts +2 -0
- package/dist/adv/explorer/explorer-css.generated.d.ts.map +1 -0
- package/dist/adv/explorer/explorer-css.generated.js +4 -0
- package/dist/adv/explorer/explorer-css.generated.js.map +1 -0
- package/dist/adv/explorer/explorer-css.js +3 -0
- package/dist/adv/explorer/explorer-css.js.map +1 -0
- package/dist/adv/explorer/fs-face.d.ts +36 -0
- package/dist/adv/explorer/fs-face.d.ts.map +1 -0
- package/dist/adv/explorer/fs-face.js +74 -0
- package/dist/adv/explorer/fs-face.js.map +1 -0
- package/dist/adv/explorer/index.d.ts +6 -0
- package/dist/adv/explorer/index.d.ts.map +1 -0
- package/dist/adv/explorer/index.js +6 -0
- package/dist/adv/explorer/index.js.map +1 -0
- package/dist/adv/explorer/landing.d.ts +26 -0
- package/dist/adv/explorer/landing.d.ts.map +1 -0
- package/dist/adv/explorer/landing.js +43 -0
- package/dist/adv/explorer/landing.js.map +1 -0
- package/dist/adv/explorer/open.d.ts +137 -0
- package/dist/adv/explorer/open.d.ts.map +1 -0
- package/dist/adv/explorer/open.js +350 -0
- package/dist/adv/explorer/open.js.map +1 -0
- package/dist/adv/explorer/picker-placement.d.ts +69 -0
- package/dist/adv/explorer/picker-placement.d.ts.map +1 -0
- package/dist/adv/explorer/picker-placement.js +122 -0
- package/dist/adv/explorer/picker-placement.js.map +1 -0
- package/dist/adv/explorer/preview/BytesPreview.d.ts +12 -0
- package/dist/adv/explorer/preview/BytesPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/BytesPreview.js +60 -0
- package/dist/adv/explorer/preview/BytesPreview.js.map +1 -0
- package/dist/adv/explorer/preview/HtmlPreview.d.ts +17 -0
- package/dist/adv/explorer/preview/HtmlPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/HtmlPreview.js +113 -0
- package/dist/adv/explorer/preview/HtmlPreview.js.map +1 -0
- package/dist/adv/explorer/preview/OfficePreview.d.ts +12 -0
- package/dist/adv/explorer/preview/OfficePreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/OfficePreview.js +63 -0
- package/dist/adv/explorer/preview/OfficePreview.js.map +1 -0
- package/dist/adv/explorer/preview/TextPreview.d.ts +18 -0
- package/dist/adv/explorer/preview/TextPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/TextPreview.js +122 -0
- package/dist/adv/explorer/preview/TextPreview.js.map +1 -0
- package/dist/adv/explorer/preview/index.d.ts +24 -0
- package/dist/adv/explorer/preview/index.d.ts.map +1 -0
- package/dist/adv/explorer/preview/index.js +58 -0
- package/dist/adv/explorer/preview/index.js.map +1 -0
- package/dist/adv/explorer/preview/md-labels.d.ts +3 -0
- package/dist/adv/explorer/preview/md-labels.d.ts.map +1 -0
- package/dist/adv/explorer/preview/md-labels.js +12 -0
- package/dist/adv/explorer/preview/md-labels.js.map +1 -0
- package/dist/adv/explorer/preview-title-bar.d.ts +26 -0
- package/dist/adv/explorer/preview-title-bar.d.ts.map +1 -0
- package/dist/adv/explorer/preview-title-bar.js +48 -0
- package/dist/adv/explorer/preview-title-bar.js.map +1 -0
- package/dist/adv/explorer/types.d.ts +259 -0
- package/dist/adv/explorer/types.d.ts.map +1 -0
- package/dist/adv/explorer/types.js +379 -0
- package/dist/adv/explorer/types.js.map +1 -0
- package/dist/adv/session/SessionViewModal.d.ts +37 -0
- package/dist/adv/session/SessionViewModal.d.ts.map +1 -0
- package/dist/adv/session/SessionViewModal.js +1133 -0
- package/dist/adv/session/SessionViewModal.js.map +1 -0
- package/dist/adv/session/changes.d.ts +73 -0
- package/dist/adv/session/changes.d.ts.map +1 -0
- package/dist/adv/session/changes.js +134 -0
- package/dist/adv/session/changes.js.map +1 -0
- package/dist/adv/session/faces.d.ts +244 -0
- package/dist/adv/session/faces.d.ts.map +1 -0
- package/dist/adv/session/faces.js +17 -0
- package/dist/adv/session/faces.js.map +1 -0
- package/dist/adv/session/index.d.ts +7 -0
- package/dist/adv/session/index.d.ts.map +1 -0
- package/dist/adv/session/index.js +27 -0
- package/dist/adv/session/index.js.map +1 -0
- package/dist/adv/session/mirror/AskCard.d.ts +35 -0
- package/dist/adv/session/mirror/AskCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/AskCard.js +131 -0
- package/dist/adv/session/mirror/AskCard.js.map +1 -0
- package/dist/adv/session/mirror/BashRow.d.ts +14 -0
- package/dist/adv/session/mirror/BashRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/BashRow.js +143 -0
- package/dist/adv/session/mirror/BashRow.js.map +1 -0
- package/dist/adv/session/mirror/ChangedFileDiff.d.ts +25 -0
- package/dist/adv/session/mirror/ChangedFileDiff.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChangedFileDiff.js +178 -0
- package/dist/adv/session/mirror/ChangedFileDiff.js.map +1 -0
- package/dist/adv/session/mirror/ChangedFilesCard.d.ts +18 -0
- package/dist/adv/session/mirror/ChangedFilesCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChangedFilesCard.js +165 -0
- package/dist/adv/session/mirror/ChangedFilesCard.js.map +1 -0
- package/dist/adv/session/mirror/ChatGroupSeat.d.ts +24 -0
- package/dist/adv/session/mirror/ChatGroupSeat.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatGroupSeat.js +135 -0
- package/dist/adv/session/mirror/ChatGroupSeat.js.map +1 -0
- package/dist/adv/session/mirror/ChatNodeSeat.d.ts +43 -0
- package/dist/adv/session/mirror/ChatNodeSeat.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatNodeSeat.js +133 -0
- package/dist/adv/session/mirror/ChatNodeSeat.js.map +1 -0
- package/dist/adv/session/mirror/ChatView.d.ts +47 -0
- package/dist/adv/session/mirror/ChatView.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatView.js +138 -0
- package/dist/adv/session/mirror/ChatView.js.map +1 -0
- package/dist/adv/session/mirror/CommandCard.d.ts +20 -0
- package/dist/adv/session/mirror/CommandCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/CommandCard.js +69 -0
- package/dist/adv/session/mirror/CommandCard.js.map +1 -0
- package/dist/adv/session/mirror/ContextInjectionRow.d.ts +18 -0
- package/dist/adv/session/mirror/ContextInjectionRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/ContextInjectionRow.js +50 -0
- package/dist/adv/session/mirror/ContextInjectionRow.js.map +1 -0
- package/dist/adv/session/mirror/Deliverables.d.ts +24 -0
- package/dist/adv/session/mirror/Deliverables.d.ts.map +1 -0
- package/dist/adv/session/mirror/Deliverables.js +175 -0
- package/dist/adv/session/mirror/Deliverables.js.map +1 -0
- package/dist/adv/session/mirror/GenericCommandCard.d.ts +136 -0
- package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/GenericCommandCard.js +948 -0
- package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -0
- package/dist/adv/session/mirror/MessageIconActions.d.ts +16 -0
- package/dist/adv/session/mirror/MessageIconActions.d.ts.map +1 -0
- package/dist/adv/session/mirror/MessageIconActions.js +69 -0
- package/dist/adv/session/mirror/MessageIconActions.js.map +1 -0
- package/dist/adv/session/mirror/MessageItem.d.ts +93 -0
- package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -0
- package/dist/adv/session/mirror/MessageItem.js +194 -0
- package/dist/adv/session/mirror/MessageItem.js.map +1 -0
- package/dist/adv/session/mirror/ReasoningRow.d.ts +11 -0
- package/dist/adv/session/mirror/ReasoningRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/ReasoningRow.js +111 -0
- package/dist/adv/session/mirror/ReasoningRow.js.map +1 -0
- package/dist/adv/session/mirror/RunningStatus.d.ts +12 -0
- package/dist/adv/session/mirror/RunningStatus.d.ts.map +1 -0
- package/dist/adv/session/mirror/RunningStatus.js +57 -0
- package/dist/adv/session/mirror/RunningStatus.js.map +1 -0
- package/dist/adv/session/mirror/StatDialog.d.ts +20 -0
- package/dist/adv/session/mirror/StatDialog.d.ts.map +1 -0
- package/dist/adv/session/mirror/StatDialog.js +49 -0
- package/dist/adv/session/mirror/StatDialog.js.map +1 -0
- package/dist/adv/session/mirror/ToolDetails.d.ts +65 -0
- package/dist/adv/session/mirror/ToolDetails.d.ts.map +1 -0
- package/dist/adv/session/mirror/ToolDetails.js +268 -0
- package/dist/adv/session/mirror/ToolDetails.js.map +1 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.d.ts +10 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.js +57 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnTailNodeView.d.ts +57 -0
- package/dist/adv/session/mirror/TurnTailNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnTailNodeView.js +106 -0
- package/dist/adv/session/mirror/TurnTailNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts +16 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.js +103 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnUsagePanel.d.ts +21 -0
- package/dist/adv/session/mirror/TurnUsagePanel.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnUsagePanel.js +41 -0
- package/dist/adv/session/mirror/TurnUsagePanel.js.map +1 -0
- package/dist/adv/session/mirror/control-details.d.ts +9 -0
- package/dist/adv/session/mirror/control-details.d.ts.map +1 -0
- package/dist/adv/session/mirror/control-details.js +549 -0
- package/dist/adv/session/mirror/control-details.js.map +1 -0
- package/dist/adv/session/mirror/detail-i18n.d.ts +4 -0
- package/dist/adv/session/mirror/detail-i18n.d.ts.map +1 -0
- package/dist/adv/session/mirror/detail-i18n.js +153 -0
- package/dist/adv/session/mirror/detail-i18n.js.map +1 -0
- package/dist/adv/session/mirror/message-chrome.d.ts +39 -0
- package/dist/adv/session/mirror/message-chrome.d.ts.map +1 -0
- package/dist/adv/session/mirror/message-chrome.js +153 -0
- package/dist/adv/session/mirror/message-chrome.js.map +1 -0
- package/dist/adv/session/mirror/process-groups.d.ts +56 -0
- package/dist/adv/session/mirror/process-groups.d.ts.map +1 -0
- package/dist/adv/session/mirror/process-groups.js +204 -0
- package/dist/adv/session/mirror/process-groups.js.map +1 -0
- package/dist/adv/session/official-classes.d.ts +28 -0
- package/dist/adv/session/official-classes.d.ts.map +1 -0
- package/dist/adv/session/official-classes.js +152 -0
- package/dist/adv/session/official-classes.js.map +1 -0
- package/dist/adv/session/open-review.d.ts +13 -0
- package/dist/adv/session/open-review.d.ts.map +1 -0
- package/dist/adv/session/open-review.js +32 -0
- package/dist/adv/session/open-review.js.map +1 -0
- package/dist/adv/session/open-session-view.d.ts +19 -0
- package/dist/adv/session/open-session-view.d.ts.map +1 -0
- package/dist/adv/session/open-session-view.js +147 -0
- package/dist/adv/session/open-session-view.js.map +1 -0
- package/dist/adv/session/pending-inputs.d.ts +33 -0
- package/dist/adv/session/pending-inputs.d.ts.map +1 -0
- package/dist/adv/session/pending-inputs.js +130 -0
- package/dist/adv/session/pending-inputs.js.map +1 -0
- package/dist/adv/session/session-css.d.ts +2 -0
- package/dist/adv/session/session-css.d.ts.map +1 -0
- package/dist/adv/session/session-css.generated.d.ts +2 -0
- package/dist/adv/session/session-css.generated.d.ts.map +1 -0
- package/dist/adv/session/session-css.generated.js +4 -0
- package/dist/adv/session/session-css.generated.js.map +1 -0
- package/dist/adv/session/session-css.js +3 -0
- package/dist/adv/session/session-css.js.map +1 -0
- package/dist/adv/session/tail-follow.d.ts +29 -0
- package/dist/adv/session/tail-follow.d.ts.map +1 -0
- package/dist/adv/session/tail-follow.js +106 -0
- package/dist/adv/session/tail-follow.js.map +1 -0
- package/dist/ui/actions/Button.d.ts +102 -0
- package/dist/ui/actions/Button.d.ts.map +1 -0
- package/dist/ui/actions/Button.js +233 -0
- package/dist/ui/actions/Button.js.map +1 -0
- package/dist/ui/actions/button-css.generated.d.ts +2 -0
- package/dist/ui/actions/button-css.generated.d.ts.map +1 -0
- package/dist/ui/actions/button-css.generated.js +4 -0
- package/dist/ui/actions/button-css.generated.js.map +1 -0
- package/dist/ui/display/Card.d.ts +65 -0
- package/dist/ui/display/Card.d.ts.map +1 -0
- package/dist/ui/display/Card.js +109 -0
- package/dist/ui/display/Card.js.map +1 -0
- package/dist/ui/display/Chip.d.ts +28 -0
- package/dist/ui/display/Chip.d.ts.map +1 -0
- package/dist/ui/display/Chip.js +36 -0
- package/dist/ui/display/Chip.js.map +1 -0
- package/dist/ui/display/CodeViewer.d.ts +38 -0
- package/dist/ui/display/CodeViewer.d.ts.map +1 -0
- package/dist/ui/display/CodeViewer.js +107 -0
- package/dist/ui/display/CodeViewer.js.map +1 -0
- package/dist/ui/display/FieldHint.d.ts +18 -0
- package/dist/ui/display/FieldHint.d.ts.map +1 -0
- package/dist/ui/display/FieldHint.js +40 -0
- package/dist/ui/display/FieldHint.js.map +1 -0
- package/dist/ui/display/FlipText.d.ts +43 -0
- package/dist/ui/display/FlipText.d.ts.map +1 -0
- package/dist/ui/display/FlipText.js +59 -0
- package/dist/ui/display/FlipText.js.map +1 -0
- package/dist/ui/display/LiveText.d.ts +13 -0
- package/dist/ui/display/LiveText.d.ts.map +1 -0
- package/dist/ui/display/LiveText.js +19 -0
- package/dist/ui/display/LiveText.js.map +1 -0
- package/dist/ui/display/MarqueeText.d.ts +22 -0
- package/dist/ui/display/MarqueeText.d.ts.map +1 -0
- package/dist/ui/display/MarqueeText.js +52 -0
- package/dist/ui/display/MarqueeText.js.map +1 -0
- package/dist/ui/display/SectionHead.d.ts +35 -0
- package/dist/ui/display/SectionHead.d.ts.map +1 -0
- package/dist/ui/display/SectionHead.js +45 -0
- package/dist/ui/display/SectionHead.js.map +1 -0
- package/dist/ui/display/Surface.d.ts +43 -0
- package/dist/ui/display/Surface.d.ts.map +1 -0
- package/dist/ui/display/Surface.js +39 -0
- package/dist/ui/display/Surface.js.map +1 -0
- package/dist/ui/display/Table.d.ts +30 -0
- package/dist/ui/display/Table.d.ts.map +1 -0
- package/dist/ui/display/Table.js +96 -0
- package/dist/ui/display/Table.js.map +1 -0
- package/dist/ui/display/card-css.d.ts +2 -0
- package/dist/ui/display/card-css.d.ts.map +1 -0
- package/dist/ui/display/card-css.generated.d.ts +2 -0
- package/dist/ui/display/card-css.generated.d.ts.map +1 -0
- package/dist/ui/display/card-css.generated.js +4 -0
- package/dist/ui/display/card-css.generated.js.map +1 -0
- package/dist/ui/display/card-css.js +5 -0
- package/dist/ui/display/card-css.js.map +1 -0
- package/dist/ui/display/chip-css.d.ts +2 -0
- package/dist/ui/display/chip-css.d.ts.map +1 -0
- package/dist/ui/display/chip-css.generated.d.ts +2 -0
- package/dist/ui/display/chip-css.generated.d.ts.map +1 -0
- package/dist/ui/display/chip-css.generated.js +4 -0
- package/dist/ui/display/chip-css.generated.js.map +1 -0
- package/dist/ui/display/chip-css.js +12 -0
- package/dist/ui/display/chip-css.js.map +1 -0
- package/dist/ui/display/code-viewer-css.d.ts +2 -0
- package/dist/ui/display/code-viewer-css.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-css.generated.d.ts +2 -0
- package/dist/ui/display/code-viewer-css.generated.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-css.generated.js +4 -0
- package/dist/ui/display/code-viewer-css.generated.js.map +1 -0
- package/dist/ui/display/code-viewer-css.js +3 -0
- package/dist/ui/display/code-viewer-css.js.map +1 -0
- package/dist/ui/display/code-viewer-lang.d.ts +15 -0
- package/dist/ui/display/code-viewer-lang.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-lang.js +190 -0
- package/dist/ui/display/code-viewer-lang.js.map +1 -0
- package/dist/ui/display/code-viewer-theme.d.ts +5 -0
- package/dist/ui/display/code-viewer-theme.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-theme.js +138 -0
- package/dist/ui/display/code-viewer-theme.js.map +1 -0
- package/dist/ui/display/flip-css.d.ts +2 -0
- package/dist/ui/display/flip-css.d.ts.map +1 -0
- package/dist/ui/display/flip-css.generated.d.ts +2 -0
- package/dist/ui/display/flip-css.generated.d.ts.map +1 -0
- package/dist/ui/display/flip-css.generated.js +4 -0
- package/dist/ui/display/flip-css.generated.js.map +1 -0
- package/dist/ui/display/flip-css.js +4 -0
- package/dist/ui/display/flip-css.js.map +1 -0
- package/dist/ui/display/hint-css.generated.d.ts +2 -0
- package/dist/ui/display/hint-css.generated.d.ts.map +1 -0
- package/dist/ui/display/hint-css.generated.js +4 -0
- package/dist/ui/display/hint-css.generated.js.map +1 -0
- package/dist/ui/display/marquee-css.d.ts +2 -0
- package/dist/ui/display/marquee-css.d.ts.map +1 -0
- package/dist/ui/display/marquee-css.generated.d.ts +2 -0
- package/dist/ui/display/marquee-css.generated.d.ts.map +1 -0
- package/dist/ui/display/marquee-css.generated.js +4 -0
- package/dist/ui/display/marquee-css.generated.js.map +1 -0
- package/dist/ui/display/marquee-css.js +4 -0
- package/dist/ui/display/marquee-css.js.map +1 -0
- package/dist/ui/display/section-head-css.generated.d.ts +2 -0
- package/dist/ui/display/section-head-css.generated.d.ts.map +1 -0
- package/dist/ui/display/section-head-css.generated.js +4 -0
- package/dist/ui/display/section-head-css.generated.js.map +1 -0
- package/dist/ui/display/surface-css.d.ts +2 -0
- package/dist/ui/display/surface-css.d.ts.map +1 -0
- package/dist/ui/display/surface-css.generated.d.ts +2 -0
- package/dist/ui/display/surface-css.generated.d.ts.map +1 -0
- package/dist/ui/display/surface-css.generated.js +4 -0
- package/dist/ui/display/surface-css.generated.js.map +1 -0
- package/dist/ui/display/surface-css.js +7 -0
- package/dist/ui/display/surface-css.js.map +1 -0
- package/dist/ui/display/table-css.generated.d.ts +2 -0
- package/dist/ui/display/table-css.generated.d.ts.map +1 -0
- package/dist/ui/display/table-css.generated.js +4 -0
- package/dist/ui/display/table-css.generated.js.map +1 -0
- package/dist/ui/display/table-logic.d.ts +110 -0
- package/dist/ui/display/table-logic.d.ts.map +1 -0
- package/dist/ui/display/table-logic.js +81 -0
- package/dist/ui/display/table-logic.js.map +1 -0
- package/dist/ui/display/table-plain-css.generated.d.ts +2 -0
- package/dist/ui/display/table-plain-css.generated.d.ts.map +1 -0
- package/dist/ui/display/table-plain-css.generated.js +4 -0
- package/dist/ui/display/table-plain-css.generated.js.map +1 -0
- package/dist/ui/display/table-shared.d.ts +101 -0
- package/dist/ui/display/table-shared.d.ts.map +1 -0
- package/dist/ui/display/table-shared.js +229 -0
- package/dist/ui/display/table-shared.js.map +1 -0
- package/dist/ui/feedback/AlertModal.d.ts +41 -0
- package/dist/ui/feedback/AlertModal.d.ts.map +1 -0
- package/dist/ui/feedback/AlertModal.js +45 -0
- package/dist/ui/feedback/AlertModal.js.map +1 -0
- package/dist/ui/feedback/ConfirmModal.d.ts +50 -0
- package/dist/ui/feedback/ConfirmModal.d.ts.map +1 -0
- package/dist/ui/feedback/ConfirmModal.js +47 -0
- package/dist/ui/feedback/ConfirmModal.js.map +1 -0
- package/dist/ui/feedback/Loader.d.ts +49 -0
- package/dist/ui/feedback/Loader.d.ts.map +1 -0
- package/dist/ui/feedback/Loader.js +79 -0
- package/dist/ui/feedback/Loader.js.map +1 -0
- package/dist/ui/feedback/LoaderBar.d.ts +38 -0
- package/dist/ui/feedback/LoaderBar.d.ts.map +1 -0
- package/dist/ui/feedback/LoaderBar.js +79 -0
- package/dist/ui/feedback/LoaderBar.js.map +1 -0
- package/dist/ui/feedback/Loading.d.ts +69 -0
- package/dist/ui/feedback/Loading.d.ts.map +1 -0
- package/dist/ui/feedback/Loading.js +164 -0
- package/dist/ui/feedback/Loading.js.map +1 -0
- package/dist/ui/feedback/Modal.d.ts +73 -0
- package/dist/ui/feedback/Modal.d.ts.map +1 -0
- package/dist/ui/feedback/Modal.js +83 -0
- package/dist/ui/feedback/Modal.js.map +1 -0
- package/dist/ui/feedback/SideSheet.d.ts +70 -0
- package/dist/ui/feedback/SideSheet.d.ts.map +1 -0
- package/dist/ui/feedback/SideSheet.js +130 -0
- package/dist/ui/feedback/SideSheet.js.map +1 -0
- package/dist/ui/feedback/Toast.d.ts +45 -0
- package/dist/ui/feedback/Toast.d.ts.map +1 -0
- package/dist/ui/feedback/Toast.js +225 -0
- package/dist/ui/feedback/Toast.js.map +1 -0
- package/dist/ui/feedback/feedback-css.d.ts +2 -0
- package/dist/ui/feedback/feedback-css.d.ts.map +1 -0
- package/dist/ui/feedback/feedback-css.generated.d.ts +2 -0
- package/dist/ui/feedback/feedback-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/feedback-css.generated.js +4 -0
- package/dist/ui/feedback/feedback-css.generated.js.map +1 -0
- package/dist/ui/feedback/feedback-css.js +4 -0
- package/dist/ui/feedback/feedback-css.js.map +1 -0
- package/dist/ui/feedback/host-toast.d.ts +23 -0
- package/dist/ui/feedback/host-toast.d.ts.map +1 -0
- package/dist/ui/feedback/host-toast.js +34 -0
- package/dist/ui/feedback/host-toast.js.map +1 -0
- package/dist/ui/feedback/loader-bar-art.d.ts +6 -0
- package/dist/ui/feedback/loader-bar-art.d.ts.map +1 -0
- package/dist/ui/feedback/loader-bar-art.js +6 -0
- package/dist/ui/feedback/loader-bar-art.js.map +1 -0
- package/dist/ui/feedback/loader-bar-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loader-bar-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loader-bar-css.generated.js +4 -0
- package/dist/ui/feedback/loader-bar-css.generated.js.map +1 -0
- package/dist/ui/feedback/loader-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loader-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loader-css.generated.js +4 -0
- package/dist/ui/feedback/loader-css.generated.js.map +1 -0
- package/dist/ui/feedback/loading-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loading-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loading-css.generated.js +4 -0
- package/dist/ui/feedback/loading-css.generated.js.map +1 -0
- package/dist/ui/feedback/loading-host.d.ts +49 -0
- package/dist/ui/feedback/loading-host.d.ts.map +1 -0
- package/dist/ui/feedback/loading-host.js +57 -0
- package/dist/ui/feedback/loading-host.js.map +1 -0
- package/dist/ui/feedback/modal-host.d.ts +51 -0
- package/dist/ui/feedback/modal-host.d.ts.map +1 -0
- package/dist/ui/feedback/modal-host.js +170 -0
- package/dist/ui/feedback/modal-host.js.map +1 -0
- package/dist/ui/feedback/side-sheet-css.d.ts +2 -0
- package/dist/ui/feedback/side-sheet-css.d.ts.map +1 -0
- package/dist/ui/feedback/side-sheet-css.generated.d.ts +2 -0
- package/dist/ui/feedback/side-sheet-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/side-sheet-css.generated.js +4 -0
- package/dist/ui/feedback/side-sheet-css.generated.js.map +1 -0
- package/dist/ui/feedback/side-sheet-css.js +2 -0
- package/dist/ui/feedback/side-sheet-css.js.map +1 -0
- package/dist/ui/feedback/toast-host.d.ts +24 -0
- package/dist/ui/feedback/toast-host.d.ts.map +1 -0
- package/dist/ui/feedback/toast-host.js +20 -0
- package/dist/ui/feedback/toast-host.js.map +1 -0
- package/dist/ui/index.d.ts +44 -44
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +44 -44
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/infra/chevron.d.ts +22 -0
- package/dist/ui/infra/chevron.d.ts.map +1 -0
- package/dist/ui/infra/chevron.js +33 -0
- package/dist/ui/infra/chevron.js.map +1 -0
- package/dist/ui/infra/controls-css.d.ts +16 -0
- package/dist/ui/infra/controls-css.d.ts.map +1 -0
- package/dist/ui/infra/controls-css.js +26 -0
- package/dist/ui/infra/controls-css.js.map +1 -0
- package/dist/ui/infra/css.d.ts +35 -0
- package/dist/ui/infra/css.d.ts.map +1 -0
- package/dist/ui/infra/css.js +52 -0
- package/dist/ui/infra/css.js.map +1 -0
- package/dist/ui/infra/host-data.d.ts +119 -0
- package/dist/ui/infra/host-data.d.ts.map +1 -0
- package/dist/ui/infra/host-data.js +122 -0
- package/dist/ui/infra/host-data.js.map +1 -0
- package/dist/ui/infra/locale.d.ts +4 -0
- package/dist/ui/infra/locale.d.ts.map +1 -0
- package/dist/ui/infra/locale.js +17 -0
- package/dist/ui/infra/locale.js.map +1 -0
- package/dist/ui/infra/overlay-css.d.ts +2 -0
- package/dist/ui/infra/overlay-css.d.ts.map +1 -0
- package/dist/ui/infra/overlay-css.generated.d.ts +2 -0
- package/dist/ui/infra/overlay-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/overlay-css.generated.js +4 -0
- package/dist/ui/infra/overlay-css.generated.js.map +1 -0
- package/dist/ui/infra/overlay-css.js +2 -0
- package/dist/ui/infra/overlay-css.js.map +1 -0
- package/dist/ui/infra/overlay.d.ts +62 -0
- package/dist/ui/infra/overlay.d.ts.map +1 -0
- package/dist/ui/infra/overlay.js +94 -0
- package/dist/ui/infra/overlay.js.map +1 -0
- package/dist/ui/infra/panel-css.d.ts +2 -0
- package/dist/ui/infra/panel-css.d.ts.map +1 -0
- package/dist/ui/infra/panel-css.generated.d.ts +2 -0
- package/dist/ui/infra/panel-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/panel-css.generated.js +4 -0
- package/dist/ui/infra/panel-css.generated.js.map +1 -0
- package/dist/ui/infra/panel-css.js +2 -0
- package/dist/ui/infra/panel-css.js.map +1 -0
- package/dist/ui/infra/panel.d.ts +41 -0
- package/dist/ui/infra/panel.d.ts.map +1 -0
- package/dist/ui/infra/panel.js +37 -0
- package/dist/ui/infra/panel.js.map +1 -0
- package/dist/ui/infra/side-panel-css.d.ts +2 -0
- package/dist/ui/infra/side-panel-css.d.ts.map +1 -0
- package/dist/ui/infra/side-panel-css.generated.d.ts +2 -0
- package/dist/ui/infra/side-panel-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/side-panel-css.generated.js +4 -0
- package/dist/ui/infra/side-panel-css.generated.js.map +1 -0
- package/dist/ui/infra/side-panel-css.js +2 -0
- package/dist/ui/infra/side-panel-css.js.map +1 -0
- package/dist/ui/infra/thenable.d.ts +9 -0
- package/dist/ui/infra/thenable.d.ts.map +1 -0
- package/dist/ui/infra/thenable.js +15 -0
- package/dist/ui/infra/thenable.js.map +1 -0
- package/dist/ui/infra/ticker.d.ts +8 -0
- package/dist/ui/infra/ticker.d.ts.map +1 -0
- package/dist/ui/infra/ticker.js +49 -0
- package/dist/ui/infra/ticker.js.map +1 -0
- package/dist/ui/infra/tooltip.d.ts +29 -0
- package/dist/ui/infra/tooltip.d.ts.map +1 -0
- package/dist/ui/infra/tooltip.js +10 -0
- package/dist/ui/infra/tooltip.js.map +1 -0
- package/dist/ui/inputs/Checkbox.d.ts +24 -0
- package/dist/ui/inputs/Checkbox.d.ts.map +1 -0
- package/dist/ui/inputs/Checkbox.js +35 -0
- package/dist/ui/inputs/Checkbox.js.map +1 -0
- package/dist/ui/inputs/DateTimePicker.d.ts +45 -0
- package/dist/ui/inputs/DateTimePicker.d.ts.map +1 -0
- package/dist/ui/inputs/DateTimePicker.js +462 -0
- package/dist/ui/inputs/DateTimePicker.js.map +1 -0
- package/dist/ui/inputs/Field.d.ts +125 -0
- package/dist/ui/inputs/Field.d.ts.map +1 -0
- package/dist/ui/inputs/Field.js +175 -0
- package/dist/ui/inputs/Field.js.map +1 -0
- package/dist/ui/inputs/InputGroup.d.ts +91 -0
- package/dist/ui/inputs/InputGroup.d.ts.map +1 -0
- package/dist/ui/inputs/InputGroup.js +125 -0
- package/dist/ui/inputs/InputGroup.js.map +1 -0
- package/dist/ui/inputs/ModelPicker.d.ts +48 -0
- package/dist/ui/inputs/ModelPicker.d.ts.map +1 -0
- package/dist/ui/inputs/ModelPicker.js +101 -0
- package/dist/ui/inputs/ModelPicker.js.map +1 -0
- package/dist/ui/inputs/Picker.d.ts +56 -0
- package/dist/ui/inputs/Picker.d.ts.map +1 -0
- package/dist/ui/inputs/Picker.js +244 -0
- package/dist/ui/inputs/Picker.js.map +1 -0
- package/dist/ui/inputs/Segmented.d.ts +99 -0
- package/dist/ui/inputs/Segmented.d.ts.map +1 -0
- package/dist/ui/inputs/Segmented.js +135 -0
- package/dist/ui/inputs/Segmented.js.map +1 -0
- package/dist/ui/inputs/Textarea.d.ts +36 -0
- package/dist/ui/inputs/Textarea.d.ts.map +1 -0
- package/dist/ui/inputs/Textarea.js +35 -0
- package/dist/ui/inputs/Textarea.js.map +1 -0
- package/dist/ui/inputs/WorkspacePicker.d.ts +35 -0
- package/dist/ui/inputs/WorkspacePicker.d.ts.map +1 -0
- package/dist/ui/inputs/WorkspacePicker.js +39 -0
- package/dist/ui/inputs/WorkspacePicker.js.map +1 -0
- package/dist/ui/inputs/datetime-css.generated.d.ts +2 -0
- package/dist/ui/inputs/datetime-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/datetime-css.generated.js +4 -0
- package/dist/ui/inputs/datetime-css.generated.js.map +1 -0
- package/dist/ui/inputs/datetime-logic.d.ts +102 -0
- package/dist/ui/inputs/datetime-logic.d.ts.map +1 -0
- package/dist/ui/inputs/datetime-logic.js +200 -0
- package/dist/ui/inputs/datetime-logic.js.map +1 -0
- package/dist/ui/inputs/field-css.generated.d.ts +2 -0
- package/dist/ui/inputs/field-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/field-css.generated.js +4 -0
- package/dist/ui/inputs/field-css.generated.js.map +1 -0
- package/dist/ui/inputs/input-group-css.generated.d.ts +2 -0
- package/dist/ui/inputs/input-group-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/input-group-css.generated.js +4 -0
- package/dist/ui/inputs/input-group-css.generated.js.map +1 -0
- package/dist/ui/inputs/picker-css.d.ts +2 -0
- package/dist/ui/inputs/picker-css.d.ts.map +1 -0
- package/dist/ui/inputs/picker-css.generated.d.ts +2 -0
- package/dist/ui/inputs/picker-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/picker-css.generated.js +4 -0
- package/dist/ui/inputs/picker-css.generated.js.map +1 -0
- package/dist/ui/inputs/picker-css.js +4 -0
- package/dist/ui/inputs/picker-css.js.map +1 -0
- package/dist/ui/inputs/picker-icons.d.ts +12 -0
- package/dist/ui/inputs/picker-icons.d.ts.map +1 -0
- package/dist/ui/inputs/picker-icons.js +29 -0
- package/dist/ui/inputs/picker-icons.js.map +1 -0
- package/dist/ui/inputs/picker-logic.d.ts +33 -0
- package/dist/ui/inputs/picker-logic.d.ts.map +1 -0
- package/dist/ui/inputs/picker-logic.js +68 -0
- package/dist/ui/inputs/picker-logic.js.map +1 -0
- package/dist/ui/inputs/segmented-css.generated.d.ts +2 -0
- package/dist/ui/inputs/segmented-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/segmented-css.generated.js +4 -0
- package/dist/ui/inputs/segmented-css.generated.js.map +1 -0
- package/dist/ui/layout/PanelDock.d.ts +132 -0
- package/dist/ui/layout/PanelDock.d.ts.map +1 -0
- package/dist/ui/layout/PanelDock.js +390 -0
- package/dist/ui/layout/PanelDock.js.map +1 -0
- package/dist/ui/layout/QuickToolbar.d.ts +54 -0
- package/dist/ui/layout/QuickToolbar.d.ts.map +1 -0
- package/dist/ui/layout/QuickToolbar.js +254 -0
- package/dist/ui/layout/QuickToolbar.js.map +1 -0
- package/dist/ui/layout/SplitGroup.d.ts +37 -0
- package/dist/ui/layout/SplitGroup.d.ts.map +1 -0
- package/dist/ui/layout/SplitGroup.js +36 -0
- package/dist/ui/layout/SplitGroup.js.map +1 -0
- package/dist/ui/layout/panel-dock-css.d.ts +2 -0
- package/dist/ui/layout/panel-dock-css.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-css.generated.d.ts +2 -0
- package/dist/ui/layout/panel-dock-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-css.generated.js +4 -0
- package/dist/ui/layout/panel-dock-css.generated.js.map +1 -0
- package/dist/ui/layout/panel-dock-css.js +4 -0
- package/dist/ui/layout/panel-dock-css.js.map +1 -0
- package/dist/ui/layout/panel-dock-logic.d.ts +67 -0
- package/dist/ui/layout/panel-dock-logic.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-logic.js +110 -0
- package/dist/ui/layout/panel-dock-logic.js.map +1 -0
- package/dist/ui/layout/quick-toolbar-css.generated.d.ts +2 -0
- package/dist/ui/layout/quick-toolbar-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/quick-toolbar-css.generated.js +4 -0
- package/dist/ui/layout/quick-toolbar-css.generated.js.map +1 -0
- package/dist/ui/layout/quick-toolbar-logic.d.ts +76 -0
- package/dist/ui/layout/quick-toolbar-logic.d.ts.map +1 -0
- package/dist/ui/layout/quick-toolbar-logic.js +40 -0
- package/dist/ui/layout/quick-toolbar-logic.js.map +1 -0
- package/dist/ui/layout/resizer.d.ts +29 -0
- package/dist/ui/layout/resizer.d.ts.map +1 -0
- package/dist/ui/layout/resizer.js +42 -0
- package/dist/ui/layout/resizer.js.map +1 -0
- package/dist/ui/layout/split-group-css.generated.d.ts +2 -0
- package/dist/ui/layout/split-group-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/split-group-css.generated.js +4 -0
- package/dist/ui/layout/split-group-css.generated.js.map +1 -0
- package/dist/ui/navigation/Pagination.d.ts +59 -0
- package/dist/ui/navigation/Pagination.d.ts.map +1 -0
- package/dist/ui/navigation/Pagination.js +112 -0
- package/dist/ui/navigation/Pagination.js.map +1 -0
- package/dist/ui/navigation/pagination-css.generated.d.ts +2 -0
- package/dist/ui/navigation/pagination-css.generated.d.ts.map +1 -0
- package/dist/ui/navigation/pagination-css.generated.js +4 -0
- package/dist/ui/navigation/pagination-css.generated.js.map +1 -0
- package/dist/ui/navigation/pagination-logic.d.ts +36 -0
- package/dist/ui/navigation/pagination-logic.d.ts.map +1 -0
- package/dist/ui/navigation/pagination-logic.js +73 -0
- package/dist/ui/navigation/pagination-logic.js.map +1 -0
- package/dist/ui/official.js +2 -2
- package/dist/ui/official.js.map +1 -1
- package/dist/utils/i18n.d.ts +2 -2
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/design/architecture.md +9 -8
- package/docs/design/copywriting.md +23 -0
- package/docs/design/external/dsh-host.md +5 -5
- package/docs/design/structure.md +132 -128
- package/docs/design/style.md +5 -5
- package/docs/help/utils.doc.ts +3 -3
- package/docs/help/utils.md +3 -3
- package/docs/requirements.md +30 -290
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createElement as h } from 'react';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { Translate } from '../../../utils/i18n.js';
|
|
4
|
+
import type { ChatNodeStoreFace, TurnsFace } from '../faces.js';
|
|
5
|
+
import type { NodeRenderer } from './ChatNodeSeat.js';
|
|
6
|
+
import type { ChatEntry, ProcessGroupSnapshot } from './process-groups.js';
|
|
7
|
+
/** 会话区骨架:frame > root > scroll > column(类名一律取官方 ChatView.module.css,取不到 = 空类)。
|
|
8
|
+
*
|
|
9
|
+
* `dshpc-sv-frame` / `dshpc-sv-scroll` = 本包**稳定钩子类**(不走 officialClass 发现,官方类命中时也照样挂):
|
|
10
|
+
* 会话区**纵向间距的唯一真源**。官方 scroll 自带纵向 16px、官方 frame 的纵向值又不确定,
|
|
11
|
+
* 归一方案(移植自兄弟项目 2026-10-03 定尺):**scroll 钩子把官方纵向 16px 归零,
|
|
12
|
+
* frame 钩子独自定 17/17**,两条钩子都用双类名提高特异性压过官方 CSS module(0,2,0 > 0,1,0),
|
|
13
|
+
* 不依赖注入顺序 ⇒ 命中 / 未命中两条路径纵向完全一致。
|
|
14
|
+
*/
|
|
15
|
+
export declare function ChatViewFrame(props: {
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}): ReturnType<typeof h>;
|
|
18
|
+
/** 官方 ChatNodeList:order → seat 列表(grouped 视图 = entries + groups 路径)。 */
|
|
19
|
+
export declare function ChatNodeListMirror(props: {
|
|
20
|
+
order: readonly string[];
|
|
21
|
+
store?: ChatNodeStoreFace;
|
|
22
|
+
/** 官方 grouped('chat') 的 entries + 组快照(buildProcessGroups 产出);缺省走 order 兜底。 */
|
|
23
|
+
entries?: ReadonlyArray<ChatEntry>;
|
|
24
|
+
groups?: ReadonlyMap<string, ProcessGroupSnapshot>;
|
|
25
|
+
/** 官方 timeline.turns(判 turn 是否 open ⇒ grouped 政策)。 */
|
|
26
|
+
turns?: TurnsFace;
|
|
27
|
+
openState: ReadonlyMap<number, number>;
|
|
28
|
+
onSetOpen(turn: number, answerStep: number, open: boolean): void;
|
|
29
|
+
foldCompleted: boolean;
|
|
30
|
+
renderNode: NodeRenderer;
|
|
31
|
+
t: Translate;
|
|
32
|
+
}): Array<ReturnType<typeof h> | null>;
|
|
33
|
+
/** 加载 / 空态提示行(13px tertiary)。 */
|
|
34
|
+
export declare function ChatHint(props: {
|
|
35
|
+
text: string;
|
|
36
|
+
}): ReturnType<typeof h>;
|
|
37
|
+
/** 「加载更早记录」按钮(官方 older:按钮 4px 12px / 12px 字号 / radius-sm / 底色 interactive-bg-hover-solid)。 */
|
|
38
|
+
export declare function ChatOlderButton(props: {
|
|
39
|
+
label: string;
|
|
40
|
+
onClick: () => void;
|
|
41
|
+
}): ReturnType<typeof h>;
|
|
42
|
+
/** 「到底部」悬浮钮(官方 toBottom:34×34 圆形悬浮,仅在有更多历史时显示)。 */
|
|
43
|
+
export declare function ChatToBottom(props: {
|
|
44
|
+
label: string;
|
|
45
|
+
onClick: () => void;
|
|
46
|
+
}): ReturnType<typeof h>;
|
|
47
|
+
//# sourceMappingURL=ChatView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatView.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ChatView.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAI1E;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAgBnF;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAClD,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAChE,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,YAAY,CAAA;IACxB,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA8ErC;AAQD,iCAAiC;AACjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAEtE;AAED,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAInG;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAIhG"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// 官方对照:packages/client/ui-chat/src/client/chat/ChatView.tsx(0.1.7-rc.2 lib/client.js:5004-5260)
|
|
2
|
+
// 骨架四层:frame(> TurnNavigator)> root[data-chat-following-tail] > scroll > column[data-chat-flow]
|
|
3
|
+
// column 子项:hint(loading)/ openError / older(hasMore)/ 各 flowItem(ChatNodeList)
|
|
4
|
+
// root 内另有 toBottomSlot(官方按「是否贴尾」显隐,弹窗恒贴尾 ⇒ 不渲染)。
|
|
5
|
+
// ChatNodeList:entries → seat;官方 entries 优先取 grouped('chat'),取不到时 = order.map(key)。
|
|
6
|
+
import { createElement as h } from 'react';
|
|
7
|
+
import { officialClass } from '../official-classes.js';
|
|
8
|
+
import { ChatGroupSeatMirror } from './ChatGroupSeat.js';
|
|
9
|
+
import { ChatNodeSeatMirror } from './ChatNodeSeat.js';
|
|
10
|
+
import { ensureComponentStyles } from '../../../ui/infra/css.js';
|
|
11
|
+
import { SESSION_CSS } from '../session-css.js';
|
|
12
|
+
/** 会话区骨架:frame > root > scroll > column(类名一律取官方 ChatView.module.css,取不到 = 空类)。
|
|
13
|
+
*
|
|
14
|
+
* `dshpc-sv-frame` / `dshpc-sv-scroll` = 本包**稳定钩子类**(不走 officialClass 发现,官方类命中时也照样挂):
|
|
15
|
+
* 会话区**纵向间距的唯一真源**。官方 scroll 自带纵向 16px、官方 frame 的纵向值又不确定,
|
|
16
|
+
* 归一方案(移植自兄弟项目 2026-10-03 定尺):**scroll 钩子把官方纵向 16px 归零,
|
|
17
|
+
* frame 钩子独自定 17/17**,两条钩子都用双类名提高特异性压过官方 CSS module(0,2,0 > 0,1,0),
|
|
18
|
+
* 不依赖注入顺序 ⇒ 命中 / 未命中两条路径纵向完全一致。
|
|
19
|
+
*/
|
|
20
|
+
export function ChatViewFrame(props) {
|
|
21
|
+
ensureComponentStyles('session', SESSION_CSS);
|
|
22
|
+
return h('div', { className: `${officialClass('ChatView', 'frame') ?? ''} dshpc-sv-frame dshpc-sv-chat` },
|
|
23
|
+
// 弹窗恒贴尾 ⇒ root 带 data-chat-following-tail(官方只在贴尾时写,作用 = overflow-anchor:none)。
|
|
24
|
+
h('div', { className: officialClass('ChatView', 'root') ?? '', 'data-chat-following-tail': '' }, h('div', { className: `${officialClass('ChatView', 'scroll') ?? ''} dshpc-sv-scroll` }, h('div', { className: officialClass('ChatView', 'column') ?? '', 'data-chat-flow': '' }, props.children),
|
|
25
|
+
// 官方 scroll 末尾的滚动占位(高度 0,只做锚点)。
|
|
26
|
+
h('div', {
|
|
27
|
+
className: officialClass('ChatView', 'turnSpacer') ?? '',
|
|
28
|
+
'data-chat-turn-spacer': true,
|
|
29
|
+
'aria-hidden': 'true',
|
|
30
|
+
}))));
|
|
31
|
+
}
|
|
32
|
+
/** 官方 ChatNodeList:order → seat 列表(grouped 视图 = entries + groups 路径)。 */
|
|
33
|
+
export function ChatNodeListMirror(props) {
|
|
34
|
+
const { order, store, entries, groups, turns, openState, onSetOpen, foldCompleted, renderNode, t } = props;
|
|
35
|
+
const rows = [];
|
|
36
|
+
const read = store === undefined ? undefined : store.get;
|
|
37
|
+
if (typeof read !== 'function' || store === undefined)
|
|
38
|
+
return rows;
|
|
39
|
+
const readSafe = (key) => {
|
|
40
|
+
try {
|
|
41
|
+
return read.call(store, key);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
if (entries !== undefined && groups !== undefined) {
|
|
48
|
+
// 官方 deferCollapse:**每一轮(turn)的最后那一个过程组**保持 flat
|
|
49
|
+
// (不画「已完成分析…」头、组内条目直接铺开),该轮其余组照常收折。
|
|
50
|
+
// 例:turn 1 切出 2 组 ⇒ 前 1 组收折、最后 1 组平铺;turn 3 切出 5 组 ⇒ 前 4 组收折、最后 1 组平铺。
|
|
51
|
+
// ⚠️ turn = -1 的组(command 节点无 turn location,process-groups.ts:176 `turn ?? -1`)
|
|
52
|
+
// **不开新轮**,并入它前面那一轮 —— 否则会被单独当成一轮、多平铺一处(真机 2026-10-23)。
|
|
53
|
+
const flatKeys = new Set();
|
|
54
|
+
{
|
|
55
|
+
let bucket = [];
|
|
56
|
+
let bucketTurn;
|
|
57
|
+
const closeBucket = () => {
|
|
58
|
+
const last = bucket[bucket.length - 1];
|
|
59
|
+
if (last !== undefined)
|
|
60
|
+
flatKeys.add(last);
|
|
61
|
+
bucket = [];
|
|
62
|
+
};
|
|
63
|
+
for (const entry of entries) {
|
|
64
|
+
if (entry.kind !== 'group')
|
|
65
|
+
continue;
|
|
66
|
+
const turn = groups.get(entry.key)?.data.turn ?? -1;
|
|
67
|
+
if (turn >= 1) {
|
|
68
|
+
if (bucketTurn !== undefined && turn !== bucketTurn)
|
|
69
|
+
closeBucket();
|
|
70
|
+
bucketTurn = turn;
|
|
71
|
+
}
|
|
72
|
+
bucket.push(entry.key);
|
|
73
|
+
}
|
|
74
|
+
closeBucket();
|
|
75
|
+
}
|
|
76
|
+
// 官方 ChatNodeList 的 entries 路径:group 条目 → ChatGroupSeat(二级收折)。
|
|
77
|
+
for (const entry of entries) {
|
|
78
|
+
if (entry.kind === 'group') {
|
|
79
|
+
const group = groups.get(entry.key);
|
|
80
|
+
if (group === undefined)
|
|
81
|
+
continue;
|
|
82
|
+
const latest = flatKeys.has(group.key);
|
|
83
|
+
rows.push(h(ChatGroupSeatMirror, {
|
|
84
|
+
key: entry.key,
|
|
85
|
+
group,
|
|
86
|
+
grouped: turnStatus(turns, group.data.turn) !== 'open' && !latest,
|
|
87
|
+
store,
|
|
88
|
+
openState,
|
|
89
|
+
onSetOpen,
|
|
90
|
+
foldCompleted,
|
|
91
|
+
renderNode,
|
|
92
|
+
t,
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const node = readSafe(entry.key);
|
|
97
|
+
if (node === undefined)
|
|
98
|
+
continue;
|
|
99
|
+
rows.push(h(ChatNodeSeatMirror, {
|
|
100
|
+
key: JSON.stringify([entry.key, entry.groupPart ?? null]),
|
|
101
|
+
node,
|
|
102
|
+
groupPart: entry.groupPart,
|
|
103
|
+
store,
|
|
104
|
+
openState,
|
|
105
|
+
onSetOpen,
|
|
106
|
+
foldCompleted,
|
|
107
|
+
renderNode,
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return rows;
|
|
112
|
+
}
|
|
113
|
+
for (const key of order) {
|
|
114
|
+
const node = readSafe(key);
|
|
115
|
+
if (node === undefined)
|
|
116
|
+
continue;
|
|
117
|
+
rows.push(h(ChatNodeSeatMirror, { key, node, store, openState, onSetOpen, foldCompleted, renderNode }));
|
|
118
|
+
}
|
|
119
|
+
return rows;
|
|
120
|
+
}
|
|
121
|
+
/** turn 状态(官方 turns.get(turn)?.status)。 */
|
|
122
|
+
function turnStatus(turns, turn) {
|
|
123
|
+
const row = turns?.get(turn) ?? turns?.get(String(turn));
|
|
124
|
+
return row?.status;
|
|
125
|
+
}
|
|
126
|
+
/** 加载 / 空态提示行(13px tertiary)。 */
|
|
127
|
+
export function ChatHint(props) {
|
|
128
|
+
return h('div', { className: officialClass('ChatView', 'hint') ?? '' }, props.text);
|
|
129
|
+
}
|
|
130
|
+
/** 「加载更早记录」按钮(官方 older:按钮 4px 12px / 12px 字号 / radius-sm / 底色 interactive-bg-hover-solid)。 */
|
|
131
|
+
export function ChatOlderButton(props) {
|
|
132
|
+
return h('div', { className: officialClass('ChatView', 'older') ?? '' }, h('button', { type: 'button', onClick: props.onClick }, props.label));
|
|
133
|
+
}
|
|
134
|
+
/** 「到底部」悬浮钮(官方 toBottom:34×34 圆形悬浮,仅在有更多历史时显示)。 */
|
|
135
|
+
export function ChatToBottom(props) {
|
|
136
|
+
return h('div', { className: officialClass('ChatView', 'toBottomSlot') ?? '' }, h('button', { type: 'button', className: officialClass('ChatView', 'toBottom') ?? '', onClick: props.onClick, 'aria-label': props.label }, '↓'));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=ChatView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatView.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ChatView.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,gGAAgG;AAChG,kFAAkF;AAClF,kDAAkD;AAClD,oFAAoF;AACpF,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAItD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAA+B;IAC3D,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC7C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,+BAA+B,EAAE;IACvG,+EAA+E;IAC/E,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,0BAA0B,EAAE,EAAE,EAAE,EAC7F,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,EAAE,EACpF,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxG,gCAAgC;IAChC,CAAC,CAAC,KAAK,EAAE;QACP,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,EAAE;QACxD,uBAAuB,EAAE,IAAI;QAC7B,aAAa,EAAE,MAAM;KACtB,CAAC,CACH,CACF,CACF,CAAA;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,kBAAkB,CAAC,KAalC;IACC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,KAAK,CAAA;IAC1G,MAAM,IAAI,GAAuC,EAAE,CAAA;IACnD,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,KAAoC,CAAC,GAAG,CAAA;IACxF,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAClE,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAwC,EAAE;QACrE,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAClD,iDAAiD;QACjD,oCAAoC;QACpC,uEAAuE;QACvE,gFAAgF;QAChF,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;QAClC,CAAC;YACC,IAAI,MAAM,GAAa,EAAE,CAAA;YACzB,IAAI,UAA8B,CAAA;YAClC,MAAM,WAAW,GAAG,GAAS,EAAE;gBAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACtC,IAAI,IAAI,KAAK,SAAS;oBAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC1C,MAAM,GAAG,EAAE,CAAA;YACb,CAAC,CAAA;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;oBAAE,SAAQ;gBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;gBACnD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;oBACd,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU;wBAAE,WAAW,EAAE,CAAA;oBAClE,UAAU,GAAG,IAAI,CAAA;gBACnB,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;YACD,WAAW,EAAE,CAAA;QACf,CAAC;QACD,+DAA+D;QAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACnC,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAQ;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE;oBAC/B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,KAAK;oBACL,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM;oBACjE,KAAK;oBACL,SAAS;oBACT,SAAS;oBACT,aAAa;oBACb,UAAU;oBACV,CAAC;iBACF,CAAC,CAAC,CAAA;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChC,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAQ;gBAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE;oBAC9B,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;oBACzD,IAAI;oBACJ,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK;oBACL,SAAS;oBACT,SAAS;oBACT,aAAa;oBACb,UAAU;iBACX,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,IAAI,KAAK,SAAS;YAAE,SAAQ;QAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IACzG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,2CAA2C;AAC3C,SAAS,UAAU,CAAC,KAA4B,EAAE,IAAY;IAC5D,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACxD,OAAO,GAAG,EAAE,MAAM,CAAA;AACpB,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,QAAQ,CAAC,KAAuB;IAC9C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;AACrF,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,KAA6C;IAC3E,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EACrE,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CACrE,CAAA;AACH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,YAAY,CAAC,KAA6C;IACxE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAC5E,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAChJ,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { Translate } from '../../../utils/i18n.js';
|
|
3
|
+
/** 官方 CommandNode(conversation-nodes/command.ts / records.d.ts):斜杠命令生命周期节点。 */
|
|
4
|
+
export interface CommandNodeFace {
|
|
5
|
+
readonly name?: string | null;
|
|
6
|
+
readonly args?: string | null;
|
|
7
|
+
readonly outcome?: {
|
|
8
|
+
readonly kind?: string;
|
|
9
|
+
readonly text?: string;
|
|
10
|
+
} | null;
|
|
11
|
+
}
|
|
12
|
+
/** 命令卡(官方 GenericCommandCard 镜像):裸命令名 + 落定摘要 + 多行输出可展开。 */
|
|
13
|
+
export declare function CommandCard(props: {
|
|
14
|
+
/** 官方 CommandNode(name/args/outcome)。 */
|
|
15
|
+
node: CommandNodeFace;
|
|
16
|
+
t: Translate;
|
|
17
|
+
/** 未决态运行文案;缺省用 t('commandRunning')(官方 command.running)。 */
|
|
18
|
+
runningSummary?: string;
|
|
19
|
+
}): ReactNode;
|
|
20
|
+
//# sourceMappingURL=CommandCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandCard.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/CommandCard.ts"],"names":[],"mappings":"AAUA,OAAO,EAAuD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAC7E;AAaD,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,yCAAyC;IACzC,IAAI,EAAE,eAAe,CAAA;IACrB,CAAC,EAAE,SAAS,CAAA;IACZ,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,SAAS,CAkDZ"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// 官方 GenericCommandCard(ui-chat/src/client/chat/GenericCommandCard.tsx @ master,原样复刻)镜像:
|
|
2
|
+
// · 行标题 = 裸命令名 node.name,缺席兜底 t('commandTitle')(官方 command.title = 指令 / Command)。
|
|
3
|
+
// · 摘要 = outcome 落定 text:未决(outcome===null) = t('commandRunning')(执行中…);
|
|
4
|
+
// 已决无 text 按 kind 取 t('commandFailed')(指令失败)/ t('commandDone')(已完成)。**不用 args**。
|
|
5
|
+
// · state = running(未决) / error(outcome.kind==='error') / ok;running/error 各挂一个 visually-hidden 读屏状态词。
|
|
6
|
+
// · 展开体仅当 outcome.text 含换行(多行)才可展开;展开体 = 原文 pre-wrap。
|
|
7
|
+
// · 分隔符 = 2×2 小圆点;错误态 summary/body 用 error 色。
|
|
8
|
+
// 样式一律取宿主注入的官方 GenericCommandCard.module.css 类(officialClass),**不写自绘兜底**:
|
|
9
|
+
// 本包只跑在 DSH 宿主上、官方样式必在场;官方大版本更新我们跟着更,兜底既防不住「官方加东西」也无意义
|
|
10
|
+
// (用户 2026-10-23 定)。取不到官方类时退化为空类(裸结构、不白屏);读屏 visually-hidden 复用 ToolRow 同名工具类。
|
|
11
|
+
import { Fragment, createElement as h, useCallback, useState } from 'react';
|
|
12
|
+
import { DisclosureRow, IconApiOutlineRegular, TextShimmer } from '../../../ui/official.js';
|
|
13
|
+
import { officialClass } from '../official-classes.js';
|
|
14
|
+
/** 官方 GenericCommandCard 模块类(宿主必注入;缺席 = 空串,裸结构不白屏,不写自绘兜底)。 */
|
|
15
|
+
const gcc = (semantic) => officialClass('GenericCommandCard', semantic) ?? '';
|
|
16
|
+
/** 官方 stateOf:未决 = running;outcome.kind==='error' = error;否则 ok。 */
|
|
17
|
+
function stateOf(outcome) {
|
|
18
|
+
if (outcome === null || outcome === undefined)
|
|
19
|
+
return 'running';
|
|
20
|
+
return outcome.kind === 'error' ? 'error' : 'ok';
|
|
21
|
+
}
|
|
22
|
+
/** 命令卡(官方 GenericCommandCard 镜像):裸命令名 + 落定摘要 + 多行输出可展开。 */
|
|
23
|
+
export function CommandCard(props) {
|
|
24
|
+
const { node, t, runningSummary } = props;
|
|
25
|
+
const [expanded, setExpanded] = useState(false);
|
|
26
|
+
const outcome = node.outcome ?? null;
|
|
27
|
+
const text = outcome?.text;
|
|
28
|
+
const summary = outcome === null
|
|
29
|
+
? runningSummary ?? t('commandRunning')
|
|
30
|
+
: text ?? (outcome.kind === 'error' ? t('commandFailed') : t('commandDone'));
|
|
31
|
+
const title = node.name ?? t('commandTitle');
|
|
32
|
+
const state = stateOf(outcome);
|
|
33
|
+
const running = state === 'running';
|
|
34
|
+
// 官方:仅多行 text 才给展开体(单行摘要已够,不出 chevron)。
|
|
35
|
+
const body = text?.includes('\n') === true ? text : null;
|
|
36
|
+
const open = expanded && body !== null;
|
|
37
|
+
const toggle = useCallback(() => { setExpanded((value) => !value); }, []);
|
|
38
|
+
// 读屏 visually-hidden:复用 ToolRow 同名工具类(既有,非新写兜底)。
|
|
39
|
+
const hidden = officialClass('ToolRow', 'visuallyHidden') ?? '';
|
|
40
|
+
return h('div', { className: gcc('root'), 'data-state': state },
|
|
41
|
+
// 官方 a11y:running/error 的读屏状态词(visually-hidden,不占可见空间)。
|
|
42
|
+
state === 'running'
|
|
43
|
+
? h('span', { className: hidden }, t('rowRunning'))
|
|
44
|
+
: state === 'error'
|
|
45
|
+
? h('span', { className: hidden }, t('rowFailed'))
|
|
46
|
+
: null, h(DisclosureRow, {
|
|
47
|
+
leadingClassName: gcc('leading'),
|
|
48
|
+
titleClassName: gcc('title'),
|
|
49
|
+
icon: h(IconApiOutlineRegular, { size: 14 }),
|
|
50
|
+
title,
|
|
51
|
+
running,
|
|
52
|
+
open,
|
|
53
|
+
expandable: body !== null,
|
|
54
|
+
expandOnRowClick: true,
|
|
55
|
+
keepContentWhenOpen: true,
|
|
56
|
+
onToggle: toggle,
|
|
57
|
+
collapsedContent: h(Fragment, null, h('span', { className: gcc('separator'), 'aria-hidden': true }), h('span', {
|
|
58
|
+
className: gcc('summary'),
|
|
59
|
+
'data-error': state === 'error' || undefined,
|
|
60
|
+
}, h(TextShimmer, { active: running }, summary))),
|
|
61
|
+
children: open && body !== null
|
|
62
|
+
? h('div', {
|
|
63
|
+
className: gcc('body'),
|
|
64
|
+
'data-error': state === 'error' || undefined,
|
|
65
|
+
}, body)
|
|
66
|
+
: undefined,
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=CommandCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandCard.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/CommandCard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createElement as h } from 'react';
|
|
2
|
+
import type { Translate } from '../../../utils/i18n.js';
|
|
3
|
+
/** 官方 ContextNode 数据面(content / source / producer / form)。 */
|
|
4
|
+
export interface ContextFace {
|
|
5
|
+
content?: readonly unknown[];
|
|
6
|
+
source?: unknown;
|
|
7
|
+
producer?: {
|
|
8
|
+
role?: string;
|
|
9
|
+
label?: string | null;
|
|
10
|
+
} | null;
|
|
11
|
+
form?: string | null;
|
|
12
|
+
}
|
|
13
|
+
/** 系统注入上下文行(官方 ContextInjectionRow 的 opaque 版)。 */
|
|
14
|
+
export declare function ContextInjectionRowMirror(props: {
|
|
15
|
+
node: ContextFace;
|
|
16
|
+
t: Translate;
|
|
17
|
+
}): ReturnType<typeof h>;
|
|
18
|
+
//# sourceMappingURL=ContextInjectionRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextInjectionRow.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ContextInjectionRow.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,aAAa,IAAI,CAAC,EAAY,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAGvD,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,mDAAmD;AACnD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAyC1G"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// 官方对照:ui-chat@0.2.1-rc.5 lib/client.js:4967-5050(ContextInjectionRow)+ 4530-4540(OpaqueBody)。
|
|
2
|
+
// 折叠行 = DisclosureRow(图标 + 标题「上下文注入」/「跨会话召回」+ producer 来源);
|
|
3
|
+
// 展开体 = 模型面向文本(content 里的 text 块拼成 pre[data-context-text])。
|
|
4
|
+
// shortcut: form 细分(instructions/catalog/snapshot/notice/relay/recall 各带 Body + source 解析)未复刻,
|
|
5
|
+
// 一律走 opaque 文本;这些 form 低频,等确实需要精确还原时再补。
|
|
6
|
+
import { Fragment, createElement as h, useState } from 'react';
|
|
7
|
+
import { DisclosureRow, IconBrowseOutlineRegular, IconContextInjectionOutlineRegular } from '../../../ui/official.js';
|
|
8
|
+
import { officialClass } from '../official-classes.js';
|
|
9
|
+
import { modelFacingRuns } from './TurnTriggerNodeView.js';
|
|
10
|
+
/** 系统注入上下文行(官方 ContextInjectionRow 的 opaque 版)。 */
|
|
11
|
+
export function ContextInjectionRowMirror(props) {
|
|
12
|
+
const { node, t } = props;
|
|
13
|
+
const [open, setOpen] = useState(false);
|
|
14
|
+
const content = Array.isArray(node.content) ? node.content : [];
|
|
15
|
+
const producer = node.producer ?? null;
|
|
16
|
+
const label = producer?.label ?? null;
|
|
17
|
+
const toolBlocks = content.length > 0 && content.every(block => {
|
|
18
|
+
const type = block?.type;
|
|
19
|
+
return type === 'tool-addition' || type === 'tool-removal';
|
|
20
|
+
});
|
|
21
|
+
return h(DisclosureRow, {
|
|
22
|
+
className: officialClass('ContextInjectionRow', 'root') ?? '',
|
|
23
|
+
icon: toolBlocks
|
|
24
|
+
? h(IconBrowseOutlineRegular, { size: 14 })
|
|
25
|
+
: h(IconContextInjectionOutlineRegular, { size: 14 }),
|
|
26
|
+
chevronClassName: officialClass('ContextInjectionRow', 'chevron') ?? '',
|
|
27
|
+
title: t(producer?.role === 'recall' ? 'contextRecall' : 'contextInjection'),
|
|
28
|
+
collapsedContent: label === null
|
|
29
|
+
? undefined
|
|
30
|
+
: h(Fragment, null, h('span', { className: officialClass('ContextInjectionRow', 'sep') ?? '', 'aria-hidden': true }), h('span', {
|
|
31
|
+
className: officialClass('ContextInjectionRow', 'source') ?? '',
|
|
32
|
+
'data-context-source': true,
|
|
33
|
+
}, label)),
|
|
34
|
+
keepContentWhenOpen: true,
|
|
35
|
+
open,
|
|
36
|
+
expandable: true,
|
|
37
|
+
expandOnRowClick: true,
|
|
38
|
+
onToggle: () => { setOpen(value => !value); },
|
|
39
|
+
children: h('div', {
|
|
40
|
+
className: officialClass('ContextInjectionRow', 'body') ?? '',
|
|
41
|
+
'data-context-injection-body': true,
|
|
42
|
+
'data-context-form': node.form ?? undefined,
|
|
43
|
+
}, modelFacingRuns(content, t).map((text, index) => h('pre', {
|
|
44
|
+
key: index,
|
|
45
|
+
className: officialClass('ContextBody', 'text') ?? '',
|
|
46
|
+
'data-context-text': true,
|
|
47
|
+
}, text))),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ContextInjectionRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextInjectionRow.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/ContextInjectionRow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createElement as h } from 'react';
|
|
2
|
+
import type { Translate } from '../../../utils/i18n.js';
|
|
3
|
+
/** 官方 PresentedFile 的消费面(presented.d.ts:path 必有,description 可选)。 */
|
|
4
|
+
export interface DeliveredFileFace {
|
|
5
|
+
path: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
}
|
|
8
|
+
/** 官方 PresentRow:present 工具调用的状态行(折叠 = 状态词 + 路径;展开 = 结果原文)。 */
|
|
9
|
+
export declare function PresentRowMirror(props: {
|
|
10
|
+
block: unknown;
|
|
11
|
+
t: Translate;
|
|
12
|
+
}): ReturnType<typeof h>;
|
|
13
|
+
/**
|
|
14
|
+
* 官方 DeliverablesTail 的 presented 网格(FileTypeIcon + 文件名 + 简介,整卡可点 → 预览)。
|
|
15
|
+
* 「已编辑文件」卡(ChangedFiles)不在这里:它走宿主 api/changes.summary,见
|
|
16
|
+
* mirror/ChangedFilesCard.ts。数据真源 = turn 级 `deliverables.presented`
|
|
17
|
+
* (官方 TurnLocation.data.get('deliverables'),见 changes.ts)。
|
|
18
|
+
*/
|
|
19
|
+
export declare function DeliverablesGridMirror(props: {
|
|
20
|
+
files: readonly DeliveredFileFace[];
|
|
21
|
+
onOpen?: (path: string) => void;
|
|
22
|
+
t: Translate;
|
|
23
|
+
}): ReturnType<typeof h> | null;
|
|
24
|
+
//# sourceMappingURL=Deliverables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deliverables.d.ts","sourceRoot":"","sources":["../../../../src/adv/session/mirror/Deliverables.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAY,MAAM,OAAO,CAAA;AAapD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAkDD,+DAA+D;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAuC9F;AAoED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACnC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAyC9B"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
// 官方对照:packages/client/ui-deliverables/src/client/{PresentRow,PresentedFileCard,Deliverables}.tsx
|
|
2
|
+
// (0.1.7-rc.2 lib/client.js:PresentRow 488-560、PresentedFileCard 1529-1600、Deliverables 1632-1710)
|
|
3
|
+
//
|
|
4
|
+
// 官方产出物层的两个用户可见面,逐值镜像:
|
|
5
|
+
// ① 交付文件行 = `present` 工具调用的专属渲染(官方经 tool.call.toolview 槽位 key='present'
|
|
6
|
+
// 挂 PresentRow):标题「交付文件」+ IconDeliverDocRegular,折叠摘要 = 状态词(已交付…)
|
|
7
|
+
// + 文件路径列表(官方纯文本**不可点**),展开体 = 工具结果原文(pre.output)。
|
|
8
|
+
// ② 交付文件卡网格 = turnTail 槽位挂 DeliverablesTail:每轮被交付成功的文件画成卡片
|
|
9
|
+
// (FileTypeIcon + 文件名 + 简介),**整卡可点 → 预览**;>4 张折叠 +「全部 N 个文件」。
|
|
10
|
+
// 官方另有原生打开(桌面 Host)的状态行/重试行——本弹窗无原生层,不渲染。
|
|
11
|
+
// 数据真源 = 会话 keyed 流里的 present 工具调用 / turn 级 deliverables.presented(真实取数,禁模拟)。
|
|
12
|
+
import { createElement as h, useState } from 'react';
|
|
13
|
+
import { DisclosureRow, FileTypeIcon, IconChevronDownOutlineRegular, IconChevronUpOutlineRegular, IconDeliverDocRegular, IconFolderOpenOutlineRegular, fileExtension, } from '../../../ui/official.js';
|
|
14
|
+
import { IconButton } from '../../../ui/actions/Button.js';
|
|
15
|
+
import { officialClass } from '../official-classes.js';
|
|
16
|
+
const basename = (path) => path.slice(Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\')) + 1);
|
|
17
|
+
/** 交付路径的所在目录;无分隔符(纯文件名)⇒ undefined,不出「在文件夹中显示」。 */
|
|
18
|
+
function parentOf(path) {
|
|
19
|
+
const cut = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\'));
|
|
20
|
+
return cut > 0 ? path.slice(0, cut) : undefined;
|
|
21
|
+
}
|
|
22
|
+
/** 官方 fileNames(PresentRow.tsx):argsRaw.files[].path 逗号连接;解析不出回原样。 */
|
|
23
|
+
function fileNames(raw) {
|
|
24
|
+
let args;
|
|
25
|
+
try {
|
|
26
|
+
args = JSON.parse(raw);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return raw;
|
|
30
|
+
}
|
|
31
|
+
if (typeof args !== 'object' || args === null || !('files' in args) || !Array.isArray(args.files))
|
|
32
|
+
return raw;
|
|
33
|
+
return args.files
|
|
34
|
+
.flatMap((file) => (typeof file === 'object' && file !== null && 'path' in file && typeof file.path === 'string' ? [file.path] : []))
|
|
35
|
+
.join(', ');
|
|
36
|
+
}
|
|
37
|
+
/** 官方 PreparingPresentRow:瘦行(只标题+图标、不可展开、running),root 无类名。 */
|
|
38
|
+
function PreparingPresentRow(props) {
|
|
39
|
+
const { t } = props;
|
|
40
|
+
return h('div', {
|
|
41
|
+
'data-tool': 'present',
|
|
42
|
+
'data-state': 'preparing',
|
|
43
|
+
'aria-label': t('deliverRowPreparing'),
|
|
44
|
+
}, h(DisclosureRow, {
|
|
45
|
+
title: t('deliverRowTitle'),
|
|
46
|
+
icon: h(IconDeliverDocRegular, { size: 14 }),
|
|
47
|
+
open: false,
|
|
48
|
+
expandable: false,
|
|
49
|
+
onToggle: () => { },
|
|
50
|
+
running: true,
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
/** 官方 PresentRow:present 工具调用的状态行(折叠 = 状态词 + 路径;展开 = 结果原文)。 */
|
|
54
|
+
export function PresentRowMirror(props) {
|
|
55
|
+
const { block, t } = props;
|
|
56
|
+
const b = (block ?? {});
|
|
57
|
+
const settled = typeof b.kind === 'string';
|
|
58
|
+
if (!settled && b.phase === 'preparing')
|
|
59
|
+
return h(PreparingPresentRow, { t });
|
|
60
|
+
const state = !settled
|
|
61
|
+
? 'running'
|
|
62
|
+
: b.error?.code === 'interrupted' ? 'stopped' : b.isError ? 'error' : 'ok';
|
|
63
|
+
const argsRaw = (settled ? b.call?.argsRaw : b.argsRaw) ?? '';
|
|
64
|
+
const details = settled
|
|
65
|
+
? ((b.content ?? []).map((item) => item.type === 'text' ? item.text ?? '' : JSON.stringify(item)).join('\n')
|
|
66
|
+
|| (b.error ? `${b.error.name ?? ''}: ${b.error.code ?? ''}` : ''))
|
|
67
|
+
: '';
|
|
68
|
+
const [expanded, setExpanded] = useState(false);
|
|
69
|
+
const statusKey = state === 'running' ? 'deliverRowRunning'
|
|
70
|
+
: state === 'error' ? 'deliverRowError'
|
|
71
|
+
: state === 'stopped' ? 'deliverRowStopped'
|
|
72
|
+
: 'deliverRowOk';
|
|
73
|
+
return h('div', {
|
|
74
|
+
// 官方 StartedPresentRow 的 root 不挂任何类(只 data-tool / data-state)。
|
|
75
|
+
'data-tool': 'present',
|
|
76
|
+
'data-state': state,
|
|
77
|
+
}, h(DisclosureRow, {
|
|
78
|
+
title: t('deliverRowTitle'),
|
|
79
|
+
icon: h(IconDeliverDocRegular, { size: 14 }),
|
|
80
|
+
open: expanded && details !== '',
|
|
81
|
+
expandable: details !== '',
|
|
82
|
+
expandOnRowClick: true,
|
|
83
|
+
keepContentWhenOpen: true,
|
|
84
|
+
onToggle: () => { setExpanded((value) => !value); },
|
|
85
|
+
collapsedContent: h('span', { className: officialClass('PresentRow', 'summary') ?? '' }, h('span', null, t(statusKey)), h('span', { className: officialClass('PresentRow', 'paths') ?? '' }, fileNames(argsRaw))),
|
|
86
|
+
// 官方 children 是数组且 pre.output **恒在**(空字符串也渲染)。
|
|
87
|
+
children: [h('pre', { key: 'output', className: officialClass('PresentRow', 'output') ?? '' }, details)],
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
/** 官方 COLLAPSED_PRESENTED_COUNT(Deliverables.tsx):超过 4 张折叠。 */
|
|
91
|
+
const COLLAPSED_DELIVERED_COUNT = 4;
|
|
92
|
+
/** 官方 cardDescription:简介去尾部括注后为空则回退扩展名大写(再退「文件」)。 */
|
|
93
|
+
function cardDescription(description, fallback) {
|
|
94
|
+
const trimmed = description?.replace(/\s*(?:\([^()]*\)|([^()]*))\s*$/u, '').trim();
|
|
95
|
+
return trimmed === undefined || trimmed === '' ? fallback : trimmed;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* 官方 PresentedFileCard:整卡可点 → onPreview(官方 = 右栏预览,本弹窗 = 调用方 openFile)。
|
|
99
|
+
*
|
|
100
|
+
* 官方 `actions` 是宿主 `deliverables.file.actions` 槽(桌面端「默认应用打开 / 文件管理器显示」),
|
|
101
|
+
* 本弹窗只有预览出口 ⇒ 只保留等价的那一个:**在文件夹中显示** = 打开所在目录的预览
|
|
102
|
+
* (「打开」与整卡点击同义,不再第二个按钮重复)。
|
|
103
|
+
*/
|
|
104
|
+
function DeliveredFileCard(props) {
|
|
105
|
+
const { file, onPreview, onReveal, t } = props;
|
|
106
|
+
const name = basename(file.path);
|
|
107
|
+
const metadata = fileExtension(name).toUpperCase() || t('deliverFileLabel');
|
|
108
|
+
return h('div', {
|
|
109
|
+
className: officialClass('Deliverables', 'file') ?? '',
|
|
110
|
+
'data-presented-file': true,
|
|
111
|
+
},
|
|
112
|
+
// 官方 cardPreview 按钮**恒在**(弹窗无预览出口时点击无副作用)。
|
|
113
|
+
h('button', {
|
|
114
|
+
type: 'button',
|
|
115
|
+
className: officialClass('Deliverables', 'cardPreview') ?? '',
|
|
116
|
+
title: file.path,
|
|
117
|
+
'aria-label': t('deliverPreviewCard', { name: file.path }),
|
|
118
|
+
onClick: (event) => {
|
|
119
|
+
event.stopPropagation();
|
|
120
|
+
onPreview?.();
|
|
121
|
+
},
|
|
122
|
+
}), h('span', { className: officialClass('Deliverables', 'fileIcon') ?? '' }, h(FileTypeIcon, { path: file.path, size: 20 })), h('div', { className: officialClass('Deliverables', 'fileBody') ?? '' }, h('div', { className: officialClass('Deliverables', 'details') ?? '' }, h('span', { className: officialClass('Deliverables', 'fileName') ?? '' }, name), h('span', { className: officialClass('Deliverables', 'description') ?? '', 'data-presented-description': true }, h('span', { className: officialClass('Deliverables', 'secondaryText') ?? '' }, cardDescription(file.description, metadata)), h('span', { className: officialClass('Deliverables', 'previewHint') ?? '' }, t('deliverPreviewHint')))), onReveal === undefined
|
|
123
|
+
? null
|
|
124
|
+
: h('div', { className: officialClass('Deliverables', 'actions') ?? '' }, h(IconButton, {
|
|
125
|
+
size: 'sm',
|
|
126
|
+
icon: h(IconFolderOpenOutlineRegular),
|
|
127
|
+
label: t('deliverReveal'),
|
|
128
|
+
onClick: (event) => {
|
|
129
|
+
event.stopPropagation();
|
|
130
|
+
onReveal();
|
|
131
|
+
},
|
|
132
|
+
}))));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* 官方 DeliverablesTail 的 presented 网格(FileTypeIcon + 文件名 + 简介,整卡可点 → 预览)。
|
|
136
|
+
* 「已编辑文件」卡(ChangedFiles)不在这里:它走宿主 api/changes.summary,见
|
|
137
|
+
* mirror/ChangedFilesCard.ts。数据真源 = turn 级 `deliverables.presented`
|
|
138
|
+
* (官方 TurnLocation.data.get('deliverables'),见 changes.ts)。
|
|
139
|
+
*/
|
|
140
|
+
export function DeliverablesGridMirror(props) {
|
|
141
|
+
const { files, onOpen, t } = props;
|
|
142
|
+
const [expanded, setExpanded] = useState(false);
|
|
143
|
+
if (files.length === 0)
|
|
144
|
+
return null;
|
|
145
|
+
const collapsible = files.length > COLLAPSED_DELIVERED_COUNT;
|
|
146
|
+
const shown = collapsible && !expanded ? files.slice(0, COLLAPSED_DELIVERED_COUNT) : files;
|
|
147
|
+
return h('div', {
|
|
148
|
+
className: officialClass('Deliverables', 'root') ?? '',
|
|
149
|
+
'data-after-changes': true,
|
|
150
|
+
'data-presented-files-grid': true,
|
|
151
|
+
}, h('div', {
|
|
152
|
+
className: officialClass('Deliverables', 'presented') ?? '',
|
|
153
|
+
'data-presented-files-row': true,
|
|
154
|
+
// 官方单文件整行铺满(CSS 依赖 data-single)。
|
|
155
|
+
'data-single': files.length === 1 || undefined,
|
|
156
|
+
}, shown.map((file, index) => h(DeliveredFileCard, {
|
|
157
|
+
key: `${file.path}:${index}`,
|
|
158
|
+
file,
|
|
159
|
+
onPreview: onOpen === undefined ? undefined : () => { onOpen(file.path); },
|
|
160
|
+
onReveal: onOpen === undefined ? undefined : (() => {
|
|
161
|
+
const parent = parentOf(file.path);
|
|
162
|
+
return parent === undefined ? undefined : () => { onOpen(parent); };
|
|
163
|
+
})(),
|
|
164
|
+
t,
|
|
165
|
+
}))), collapsible
|
|
166
|
+
? h('button', {
|
|
167
|
+
type: 'button',
|
|
168
|
+
className: officialClass('Deliverables', 'toggle') ?? '',
|
|
169
|
+
'aria-expanded': expanded,
|
|
170
|
+
'aria-label': t(expanded ? 'deliverCollapseAria' : 'deliverExpandAria', { count: files.length }),
|
|
171
|
+
onClick: () => { setExpanded((value) => !value); },
|
|
172
|
+
}, h('span', null, t(expanded ? 'deliverCollapse' : 'deliverAll', { count: files.length })), expanded ? h(IconChevronUpOutlineRegular, {}) : h(IconChevronDownOutlineRegular, {}))
|
|
173
|
+
: null);
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=Deliverables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deliverables.js","sourceRoot":"","sources":["../../../../src/adv/session/mirror/Deliverables.ts"],"names":[],"mappings":"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"}
|