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
package/docs/requirements.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
# dsh-plugin-core
|
|
1
|
+
# dsh-plugin-core 需求
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
3
|
+
> **本文只记「范围」和「还没有归属的结论」。** 一条结论写进它该在的文档之后就从这里删掉 ——
|
|
4
|
+
> 所以这个文件应当越写越短;它变长说明有人在往里堆过程稿。
|
|
5
|
+
> 槽位与各文档位置见 `docs/README.md`。
|
|
5
6
|
|
|
6
7
|
## 0. 一句话
|
|
7
8
|
|
|
8
|
-
把 DSH(DeepSeek Harness)插件反复要写的东西收敛成一个 npm
|
|
9
|
+
把 DSH(DeepSeek Harness)插件反复要写的东西收敛成一个 npm 包,以后写新插件按文档引用,
|
|
9
10
|
不再一个个仓库抄样式、抄文件浏览、抄日期格式化。
|
|
10
11
|
|
|
11
12
|
## 1. 服务对象(最重要的一条)
|
|
@@ -20,302 +21,41 @@
|
|
|
20
21
|
⇒ **判据不是「三家都抄了什么」,而是「任何一个 DSH 插件大概率都要用到什么」。**
|
|
21
22
|
三家没有、但未来插件一定会用到的,照样进;三家都有、但属于业务的,照样不进。
|
|
22
23
|
|
|
23
|
-
## 2.
|
|
24
|
+
## 2. 范围
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
├── adv.explorer/ 文件浏览成品(目录树 + 面包屑 + 预览)
|
|
33
|
-
└── adv.session/ 会话记录预览成品
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
依赖方向**单向**:`design` ← `ui` ← `adv.explorer` / `adv.session`;
|
|
37
|
-
`utils` 与 `design` **互不依赖**;`ui` 不反向依赖任何人。
|
|
38
|
-
|
|
39
|
-
### 2.1 design
|
|
40
|
-
|
|
41
|
-
- token 变量表,**变量前缀全生态统一为 `dshpc`**
|
|
42
|
-
- 样式注入器工厂 `createStyleKit({ id })`
|
|
43
|
-
- 主题判据
|
|
44
|
-
- **零 React、没有组件**
|
|
45
|
-
|
|
46
|
-
### 2.2 ui
|
|
47
|
-
|
|
48
|
-
- 零件:Button / Input 家族 / Textarea / Checkbox / Segmented / 下拉框 / 搜索框 / 滑轨 /
|
|
49
|
-
MarqueeText / FlipText / LiveText / Field(含错误提示)/ resizer / DateTime / TimeRange
|
|
50
|
-
- 选择器:`Picker`(通用:单选/多选/上限/搜索/分组/空态/降级)、`ModelPicker`、
|
|
51
|
-
`WorkspacePicker`(选工作区);`FilePicker` 已删(2026-10-20 用户:文件选择框没有用)
|
|
52
|
-
- 日期时间:`DateTimePicker`(2026-10-24 新增:单值 / 时间段 × 精度 day/hour/minute/second;
|
|
53
|
-
数据恒完整本地 ISO 到毫秒、**显示只到精度**;起始端 floor、结束端 ceil)
|
|
54
|
-
- 「统一某类元素」的控件:`SectionHead` 等
|
|
55
|
-
- 表格:`Table`(第一档外观 Plain,2026-10-30 新增并扩展:外框(默认只留上下两条)、中性灰双行分组表头 + 下边线、
|
|
56
|
-
竖分隔线(列级 opt-in,默认不画)、数据行只留极淡底线、可点行悬浮极浅中性灰、选中行淡色底 + 左侧蓝条)。
|
|
57
|
-
表头 / 通栏 / 行 hover 走专有 token(2026-10-30 用户二次定案:**表头与通栏互换底色**):
|
|
58
|
-
`--dshpc-table-head-bg` = `--dshpc-surface-sunken`(原来的通栏灰)、
|
|
59
|
-
`--dshpc-table-banner-bg` 亮 `#f6f8fa` / 暗 `#151b23`(原来的表头色)、
|
|
60
|
-
`--dshpc-table-row-hover` 亮 `rgba(15,15,15,.015)` / 暗 `rgba(255,255,255,.03)`
|
|
61
|
-
(用户两次都嫌亮:第一次要「特别浅的灰、不要淡蓝」,第二次要求「再浅一半,特别淡」,
|
|
62
|
-
暗底上用半透明白、亮底上用半透明黑)。
|
|
63
|
-
数据驱动 `columns` + `rows` / `groups`,组件不取数;
|
|
64
|
-
**配置面三层**(2026-10-30 用户要求「既要有知识又要方便配置」):
|
|
65
|
-
- 表级 `density`(compact 36/36 + 8px / default 44/48 + 12px / comfortable 52/60 + 16px,
|
|
66
|
-
前为行高、后者水平内距)、`striped`(斑马纹)、
|
|
67
|
-
`borders`(all 四边 / x 只左右 / y 只上下(**默认**)/ none);
|
|
68
|
-
- 列级 `align`、`divider`(**默认 false = 不画**,给 `true` 才画该列左竖线;首列恒不画;
|
|
69
|
-
分组列自己不写时跟随它第一个叶子列,保证组头与子列的竖线连成一条 —— 2026-10-30 用户真机
|
|
70
|
-
指出「蓝底组头没有边、绿底叶子列有边」,正是漏了这条继承)、
|
|
71
|
-
`padding`(该列水平内距 px)、`headerTone`(表头语义色,全映射 token);
|
|
72
|
-
- 单元格级:值可为任意 ReactNode,或 `{ content, colSpan, rowSpan, align }` 做跨列 / 跨行;
|
|
73
|
-
缺 key = 该格不渲染、给上一行 rowSpan 让位;
|
|
74
|
-
- 结构级 `groups`(与 `rows` 二选一,2026-10-30 用户要的通栏样式):
|
|
75
|
-
每组 = 一行横跨全部列的**通栏标题** → 这一组自己的表头 → 这一组的数据行,
|
|
76
|
-
多组垂直连续排布、组间一条实线;通栏与组表头之间也有一条线(2026-10-30 用户要求「那之间也要有 border」)。
|
|
77
|
-
用于「一个表格展示多个工作区 / 多个板块」。
|
|
78
|
-
分组模式不渲染 `<thead>`(一个 table 只有一个),表头在每组自己的 `<tbody>` 里;
|
|
79
|
-
`groups` 可与滚动加载并用(2026-10-31 用户需要):底部状态行与哨兵单独一个 `<tbody>`,排在最后一组之后;
|
|
80
|
-
分页仍与 `groups` 互斥(页码归属说不清);
|
|
81
|
-
- 行态优先级(2026-10-30 真机事故钉死):斑马纹选择器只能到 3 个类级别,
|
|
82
|
-
皮肤的 hover / 选中必须 4 级 —— 否则基础层后注入时偶数行永远被斑马纹盖住。
|
|
83
|
-
hover 走 `--dshpc-table-row-hover`(中性灰),选中走 `business-soft` + 左侧 3px `business` 条,
|
|
84
|
-
不要再回到 `--dshpc-open-bg`(2026-10-30 用户:要浅灰不要淡蓝)。
|
|
85
|
-
- **三种外观(2026-10-30 用户定)**:①全框 = `borders:'all'` + 各列 `divider:true`;
|
|
86
|
-
②左右无边 = `borders:'y'` + 各列 `divider:true`;③**默认** = 不传 `borders`(落 y)且列都不给 `divider`
|
|
87
|
-
—— 所有竖着的边都没有,只剩横线。
|
|
88
|
-
竖分隔线按列声明(格子上的 `data-divider`),**不用相邻兄弟选择器** —— 后者会让每行首格
|
|
89
|
-
永远没有左线(即 2026-10-30 真机看到的「Name 左边没 border」),且跨列后会画错位置。
|
|
90
|
-
外观分档 = **分组件 + 分文件**(`Table` / 预留 `TableGrid` 网格线 / `TableZebra` 斑马纹),
|
|
91
|
-
消费方引哪个就只打包哪份皮肤 CSS,**不用 `variant` 汇总**。
|
|
92
|
-
**可选内建分页**(2026-10-30 用户拍板「两者都做」):给 `pagination` 就让表格自己按当前页切片并在表下摆页码;
|
|
93
|
-
不传 = 完全不变(不包外层 div、DOM 与旧行为一致),`groups` 模式忽略分页
|
|
94
|
-
- 分页:`Pagination`(2026-10-30 新增,照通行范式:**传 `page` / `pageSize` / `total`,总页数与省略窗口由控件算**
|
|
95
|
-
——消费方不自己算页数、不写渲染方法;受控 `onChange(page, pageSize)`)。
|
|
96
|
-
`align` 左 / 中 / 右(**默认 right**);`siblingCount` / `boundaryCount` 控省略窗口(默认 1/1,
|
|
97
|
-
间隔恰好 1 页时直接显示页号不画省略号);可选能力(用户拍板全要):`hideOnSinglePage`、
|
|
98
|
-
`showTotal`(`boolean | (from,to,total)=>ReactNode`)、`pageSizeOptions`(传了才出现每页条数下拉)、
|
|
99
|
-
`simple`;`disabled` / `ariaLabel` / `translate`。a11y = `nav[aria-label]` + `aria-current="page"`。
|
|
100
|
-
- 反馈件:`Modal` / `Loader` 家族 / `Loading` / `toast` / 空态
|
|
101
|
-
- Loader 家族按「一个前缀 + 具象名」命名(2026-10-30 用户定):`Loader`(通用图标)/
|
|
102
|
-
`LoaderBar`(胶囊不定进度)。两者的边界完全一致 —— **只画图形,不带背景、内距、定位**,
|
|
103
|
-
背景与位置归调用方;尺寸轴共用 `LoaderSize`。
|
|
104
|
-
- `LoaderWhale`(品牌鲸鱼)同日实现后又按用户要求**删除**(2026-10-30:动效与形态都不合适):
|
|
105
|
-
删掉的是源码、CSS、转录的路径数据与源素材 `鲸鱼.svg`,不要把鲸鱼图形再搬回来。
|
|
106
|
-
- `Loader`(2026-10-30 拍板新增):**通用加载图标**,只画图标 —— 无背景、无内距、无定位,
|
|
107
|
-
背景(胶囊 / 圆角面)与位置(按钮内 / 标签内 / 漂浮)归调用方。两轴正交:`variant`
|
|
108
|
-
(`ring` / `blocks`)× `size`(`xs` 12 / `sm` 16 / `md` 24 / `lg` 32 / `xl` 48),
|
|
109
|
-
几何画在 24×24 viewBox 内等比缩放;颜色走 `currentColor`;默认 `aria-hidden`,传 `label` 才播报。
|
|
110
|
-
新形态加在库里(枚举 + 一段 CSS),不在插件里另造转圈。Button 的 loading 与 `LoadingToast` /
|
|
111
|
-
`LoadingBlock` 的转圈改为复用它(环的画法与 keyframes 只剩 `controls/loader.css` 一份)。
|
|
112
|
-
- 按钮与弹窗的 loading **只有一套**(2026-11-03 用户拍板,推翻「alert/confirm 单独一套」):
|
|
113
|
-
`Button` / `IconButton` 的 `onClick` 返回 Promise 即自动转圈禁用、settle 后恢复(reject 也恢复并打错),
|
|
114
|
-
受控 `loading` 与之取或(**别处刷新也能点亮同一颗按钮**);`onBusyChange` 把「在跑」报出去。
|
|
115
|
-
`Modal` / `SideSheet` 只认 `busy`(遮罩 / Esc / ✕ 一并失效,footer 皮肤各弹窗自管),
|
|
116
|
-
`ConfirmModal` / `AlertModal` 退化成薄壳,命令式 `confirmModal` / `alertModal` 只负责「跑完关不关」。
|
|
117
|
-
- **锁定与 loading 是两件事**(2026-11-05 用户拍板,新增 `locked`,推翻「`busy` 一把抓」):
|
|
118
|
-
`busy` 只封三条关闭路径、内容照常;`locked` 封**全部交互**并同时封关闭路径。实现口径当天被用户
|
|
119
|
-
打回一次、二次拍板后才是最终版:
|
|
120
|
-
- **不用 `inert`、不压任何灰色遮罩**(整块蒙灰用户以为界面坏了,这是被否掉的第一版)。
|
|
121
|
-
- 做法是核心控件**各自按自己的禁用态渲染**(Button / IconButton / Input / PrefixedInput /
|
|
122
|
-
NumberInput / Textarea / Checkbox / Segmented / Picker / DateTimePicker / Pagination 在渲染时
|
|
123
|
-
多算一个 `|| locked`),Tab 自然跳过;再盖一层**全透明**点击层兜住消费方自绘的元素与指针,
|
|
124
|
-
光标为 `not-allowed`。
|
|
125
|
-
- **只做「或」,永不写回**调用方的 `disabled` —— 这是「不与用户已禁用的状态冲突」「记住初始状态」
|
|
126
|
-
的答案:没有快照也就没有还原,本来禁用的解锁后照样禁用,锁定期间被改成能用 / 禁用的也不被覆盖。
|
|
127
|
-
- `locked` 是受控项、组件内不存 state,不传即初始态、关掉重开自动复位;命令式的两个弹窗不给静态
|
|
128
|
-
`locked`,改由回调参数 `ctl.setLocked(bool)` 在异步过程中开关(弹窗关掉后调用是空操作)。
|
|
129
|
-
- 自绘元素的三道补充(2026-11-05 用户追加拍板):**Tab 整个吃掉**(否则能 Tab 进自绘 input 打字)、
|
|
130
|
-
**锁定瞬间把 `.dshpc-locked` 里的活动元素 blur 掉**(否则锁定前已聚焦的还能继续打)、以及给自绘的
|
|
131
|
-
原生 `button / input / select / textarea` 一条**近似变灰**规则。
|
|
132
|
-
- 那条变灰规则的口径是不许盖消费方样式:整条选择器包进 `:where()`(特异性 **0**,消费方任意一条
|
|
133
|
-
自己的规则都能盖回来)、**只写 `opacity` + `cursor`**、值走 token `--dshpc-lock-dim`(写 1 即退出)。
|
|
134
|
-
绝不走「JS 改内联 style 再还原」——那才会真把人家写的样式冲掉;CSS 只是「条件成立时生效」,
|
|
135
|
-
解锁即不再匹配,不存在还原动作。
|
|
136
|
-
- `skin:'host'` 不支持(宿主弹窗内部不归我们管)。
|
|
137
|
-
- 剩余缺口:用内联 `style="opacity:…"` 的自绘控件灰不到它(内联本来就赢过任何规则),
|
|
138
|
-
但点击与键盘早已被挡住 —— 用户接受。
|
|
139
|
-
这个「关不关」由回调返回值决定(2026-11-03 用户拍板):**只有明确的 `false`**(同步返回,或 Promise
|
|
140
|
-
resolve 成 `false`)算「这次没成」,弹窗留着让人重试;`true` / `undefined` / 其它照常关。失败怎么提示
|
|
141
|
-
由回调自己决定(核心不弹 Toast),这样调用点就不必在外面包 `try/catch`。同步与异步两条路径同一份判据。
|
|
142
|
-
转圈期间按钮自己的 `icon` / `iconRight` 一律让位,只留转圈(+ 文字)。内测期不设兼容层。
|
|
143
|
-
- 转圈会插一枚 12px 圈 + 6px 间距 ⇒ 无 icon 的按钮宽出 18px(2026-11-03 用户拍板的两条通道):
|
|
144
|
-
① `ConfirmModal`(`confirmWidth` / `cancelWidth`)、`AlertModal`(`confirmWidth`)、
|
|
145
|
-
`InputGroupAction`(`width`)透传 `Button.width`,调用方按「最长文案 + 18px」定宽;
|
|
146
|
-
② `Button.loadingText={false}`(ConfirmModal / AlertModal / InputGroupAction 同名透传):
|
|
147
|
-
loading 时**清掉文案、锁住「有文案时」的宽度、只留一枚居中的圈**,settle 后文案与自适应宽度一起还原。
|
|
148
|
-
清文案后读屏名称靠 `aria-label`(字符串 children 自动补,复合 children 由调用方给);
|
|
149
|
-
首帧就是 loading(没有「有文案的宽度」可量)时锁不到宽,走 ① 的 `width`。
|
|
150
|
-
loading 圈包进 `.dshpc-btn__icon`(svg 被 1em 规则接管)⇒ 有 icon 的按钮切 loading 宽度零差。
|
|
151
|
-
- **弹窗底栏左侧的过程提示**(2026-11-04 用户拍板):`Modal` / `ConfirmModal` / `AlertModal` / `SideSheet`
|
|
152
|
-
各加一个 `notice?: string`,渲染在 footer 最左;**不传 = 不占位**,与接入前完全一样(`footer` 也可不给,
|
|
153
|
-
notice 自己撑起底栏)。换文案即翻牌(旧的上移出、新的从下进),单行、超长三点省略、hover 跑马灯 ——
|
|
154
|
-
跑马灯与省略**复用 `MarqueeText`**,不另写一份测宽;高度恒为一行,永不换行。
|
|
155
|
-
**空串 = 没有文案**(2026-11-04 用户补的要求):不渲染、不占位 —— 底栏那块地方被下一轮复用时,
|
|
156
|
-
传空串就把上一句清干净;清空后第一次给值是直接出现、不从下方翻上来(没有上一句可翻)。
|
|
157
|
-
实现分两层(用户拍板「拆成两层、不做引擎、不监听 loading」):控件 `FlipText`(`text` 变了就翻,
|
|
158
|
-
没变不动;宽度三档与 Button / Chip 同口径:`width` 优先,其次 `minWidth` / `maxWidth`,
|
|
159
|
-
全不传 = 随父容器)+ 弹窗只做「挂载位 + 透传」。步骤队列、loading 状态一律由调用方 setState 管。
|
|
160
|
-
- `Loading` 是旧的「自带定位 + 自带 pill 背景」复合件,**保留不删**但标 `@deprecated`,新代码用 `Loader`。
|
|
161
|
-
- 布局基础:`PanelDock` / `DockPanel` / `createPanelDock`(**可停靠分栏容器**:多面板并存、按组名寻址、拖拽拉栏、宽度记忆;2026-10-20 拍板用此名,替代早先的 `SidebarLayout` / `SplitPane`)。只做右侧;组名与窗口一对一;默认上限 3,超限拒绝新开;不做 tab 切换 / 自动淘汰 / 多份同名;**面板本身始终是布局成员,不做面板浮层**(2026-10-28 补:**收起** = 面板退出布局、另出右侧一只独立的 `position: fixed` 耳朵,点耳朵展开并还原宽度;关闭不留耳朵——耳朵是独立浮层,不是把面板变浮层)。**结构照成熟库口径写 children,`open/close` 只传 id,不把页面树塞进调用参数**
|
|
162
|
-
- 浮动快捷工具栏:`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` **全部删除**,只保留这一份,不做迁移。
|
|
163
|
-
- **通用控件是纯零件,数据由调用方传入**;**领域选择器例外**(2026-10-20 用户拍板反转):
|
|
164
|
-
`ModelPicker` / `WorkspacePicker` 是「现成的包」,接线后**自己取数自己显示**,消费方不再拿数组传 props。
|
|
165
|
-
接线两处、共用同一 path 常量:宿主 `serveModelCatalog(ctx,{path})`(`llm.listModels` 挂只读路由,
|
|
166
|
-
client 侧 remote 拿不到模型列表)+ client `connectHost(ctx,{modelsPath})`(工作区走官方 `workspaces` 快照)
|
|
167
|
-
|
|
168
|
-
### 2.3 utils
|
|
169
|
-
|
|
170
|
-
- 日期 / 字符串 / 字节体积 / 时间区间 / HTTP 骨架 + 数据获取
|
|
171
|
-
- **硬约束**:不得 import `utils` 以外的任何子包,不得依赖 React / DOM / 宿主 API,
|
|
172
|
-
只能用标准库 + 注入的参数(为的是将来能整体剥出去复用)
|
|
173
|
-
|
|
174
|
-
### 2.4 adv.explorer
|
|
175
|
-
|
|
176
|
-
- `FileBrowser` 面板 + 两命令式能力:`openFilePreview`(侧边栏预览,外壳 = 核心 `PanelDock`,2026-10-21 拍板不许自绘外壳 / 拖拽条)/ `pickWorkspaceFile`(锚定弹窗选文件,Promise 返回工作区相对路径),2026-10-20 移植自重做
|
|
177
|
-
- **接线归核心,调用方只给容器 + 路径**(2026-10-28 用户拍板):
|
|
178
|
-
- 读文件服务改由 `connectHost(ctx)` 一次接进来(`remote.workspaceFiles`,核心持有),
|
|
179
|
-
`openFilePreview` / `pickWorkspaceFile` 不再要求调用方传 `workspaceFiles`(传了以传入为准);
|
|
180
|
-
- `sessionId` 缺省由「路径 → 所属工作区 → 该区最近会话」解,匹配不出退「最近有会话的工作区」;
|
|
181
|
-
- `mount` 仍必须给(往哪行塞只有调用方知道),但**元素或选择器都收**(2026-11-04 补:`'#page-row'` 这样传即可,消费方不用存 ref;选择器解析不到 ⇒ 返回 `null` 并 warn,**不回落 body**),且**不必自己写成 flex**:核心加 `dshpc-dock-host`
|
|
182
|
-
类并补 `display:flex`,关闭时还原;子项规则只让第一个非预览子项伸展,不要传 `document.body`;
|
|
183
|
-
- 依据:插件沙箱里没有 `fs`,读字节唯一通道是 ctx 注入的服务对象 ⇒ 服务只能「接线一次」交进来,
|
|
184
|
-
不能每次调用各传一遍(这是权限边界,不是能力缺口)。
|
|
185
|
-
- **关钮可退让**(2026-11-04 用户拍板,同日二次修正):`openFilePreview` 默认**不在面板层画关钮**(`closeButton: 'none'`)—— 文件模式用 `FileBrowser` 面包屑行尾那枚,`content` 模式由内容自己画;新增 `OpenFilePreviewOptions.closeButton`,传 `'floating'` 才由壳在右上出一枚。审阅面板(`openSessionReview`)的 ✕ 画在审阅头行尾,与换行钮同排。理由:无头面板画不画、画在哪归调用方,dock 不强制浮动。`content` 与 `path` 同传 ⇒ warn 并忽略 `path`(`handle.path` 不再回报未生效的路径)。
|
|
186
|
-
- 控件纪律(2026-10-21):核心有的控件一律核心(`Button` ghost 面包屑 / `IconButton` / `Segmented` / `MarqueeText` / `PanelDock`);核心没有的那一项(▾ 选层浮层)严格按兄弟项目度量照抄
|
|
187
|
-
- 选工作区(`WorkspacePicker`)在 `ui`,不在这里;`FilePicker` 已删(2026-10-20)
|
|
188
|
-
|
|
189
|
-
### 2.5 adv.session
|
|
26
|
+
| 子包 | 干什么 |
|
|
27
|
+
|---|---|
|
|
28
|
+
| `design` | token + 样式注入器工厂(零 React) |
|
|
29
|
+
| `ui` | 控件,7 类:动作 / 录入 / 展示 / 反馈 / 布局 / 导航 + `infra`(不是控件的公共底座) |
|
|
30
|
+
| `utils` | 纯方法(零 React / DOM / 宿主) |
|
|
31
|
+
| `adv/explorer` | 文件浏览成品(面板 + 预览 + 两个命令式能力) |
|
|
32
|
+
| `adv/session` | 会话预览成品 |
|
|
190
33
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
- 必须预留定制扩展点
|
|
194
|
-
- 文件出口只有一个 `onOpenFile(path, sessionId)`(工具卡 / 行内引用 / 交付卡共用):不传 ⇒ 链接纯文本。已有预览面的调用方在回调里开自己的;没有的一行接 `openFilePreview({ mount, path, sessionId })`。**不做「给个 id 让核心塞进第三方面板」**(2026-11-04 定:核心只认识自己的 `PanelDock`,按 id 塞 = 两套布局互相拽)
|
|
195
|
-
- 变更文件的审阅出口是 `onOpenReview`,落点用 `openSessionReview({ mount, locator })`(2026-11-04 定):`locator`(sessionId / seq / index / display)属会话领域知识,locator → diff 的拼装留在 `session`(依赖方向 session → explorer 本就存在,反向不许),调用方不挑组件、不塞节点、不补 ✕。`openFilePreview({ content })` 保留为逃生口,不再是推荐路径。
|
|
196
|
-
- 会话区自动贴底只在两种情况下发生:**首次打开**、**有新内容且当时就在底部**;本地展开 / 折叠历史分组(如「已完成」)改变高度不算新内容,不许把视图拽走(2026-11-04 用户二次拍板)
|
|
34
|
+
分类判定、目录、依赖方向、demo 分区 → `docs/design/structure.md`(唯一真源,本文不复述)。
|
|
35
|
+
控件怎么用、props 长什么样 → `docs/help/` 与 TypeScript 声明。
|
|
197
36
|
|
|
198
37
|
## 3. 不进(业务,各插件自己写)
|
|
199
38
|
|
|
200
|
-
-
|
|
201
|
-
- `host`
|
|
202
|
-
- `llm/`
|
|
203
|
-
-
|
|
204
|
-
filechip / PROCESS_FILES_CSS)/ 页面几何 / 插件私有路由 / DB 表 / `mirror/` 之外的业务 UI
|
|
205
|
-
|
|
206
|
-
## 4. 立包判据(防止子包无限膨胀)
|
|
207
|
-
|
|
208
|
-
> **独立成包 = 它是一块有实质内容、会持续长大的「功能模块」;只是一个控件 ⇒ 进 `ui`。**
|
|
209
|
-
|
|
210
|
-
- 按**功能模块**分,不按**控件类型**分(弹窗 / toast / Loading / 下拉都是呈现形式,不是立包理由)
|
|
211
|
-
- 按**功能模块**分,不按**业务领域名词**分(不能因为叫「模型」就建包)
|
|
212
|
-
- 硬指标:这块有没有超过一个控件的工作量?会不会自己长出第二个 API?
|
|
213
|
-
- **统一到「控件」粒度就够了,不要提整个页面**(想统一所有标题 ⇒ 做一个 `SectionHead` 进 ui,
|
|
214
|
-
而不是把设置页整个搬进来)
|
|
215
|
-
|
|
216
|
-
## 5. 硬约束(写代码时必须遵守,不遵守会崩或脏)
|
|
217
|
-
|
|
218
|
-
### 5.1 打包与产物
|
|
219
|
-
|
|
220
|
-
- 宿主以 git/npm 装插件**不跑构建脚本** ⇒ 包必须发**预编译 dist**
|
|
221
|
-
- client 产物是 `window.__ModuleLoader__.load({ id, factory })` 的 CJS 闭包,
|
|
222
|
-
`import './x.css'` 只会产出独立 css 资源、**内核不加载** ⇒ **样式只能以 TS 字符串 + 运行时注入分发**
|
|
223
|
-
- `react` / `react-dom` / `@deepseek-ai/*` primitives 一律 **external + optional peer**;
|
|
224
|
-
打进包里会产生第二份 React 实例(hooks 直接崩)
|
|
225
|
-
|
|
226
|
-
### 5.2 样式注入必须工厂化
|
|
227
|
-
|
|
228
|
-
现 `dsh-task-dispatch-table/src/client/ui/style.ts:25` 是模块级单例 + 固定 style id
|
|
229
|
-
`dsh-task-dispatch-table-ui`,多插件同页必然互相覆盖。
|
|
230
|
-
|
|
231
|
-
⇒ 必须是 `createStyleKit({ id })`:每个插件调一次领一套自己的(`<style>` 标签 id 按插件唯一)。
|
|
232
|
-
|
|
233
|
-
**(2026-10-30)注入按控件粒度**:每个控件自注入自己那份 CSS(`ensureComponentStyles(domain, css)`,幂等),
|
|
234
|
-
**不许再聚合成一把全量**。全量聚合会让入口模块静态依赖所有 CSS,打包器无法摇树 —— 插件只用 Button 也会
|
|
235
|
-
背上全部 71.7 KB 样式文本。`ensureControls()` 因此收敛为「只登记 token」的可选预热。
|
|
236
|
-
配套约束:消费方须**具名导入**(`import * as` / CJS `require` 会让按需收益归零);跨控件修饰只许用
|
|
237
|
-
更高特异性表达,不许依赖注入顺序。
|
|
238
|
-
|
|
239
|
-
### 5.3 明暗色判据(别跟错)
|
|
240
|
-
|
|
241
|
-
- 判据 = **`body[data-ds-dark-theme]`**(宿主启动脚本 `toggleAttribute` 写入,
|
|
242
|
-
是**用户在 DeepSeek 客户端里的选择**)
|
|
243
|
-
- **禁止 `prefers-color-scheme`** —— 它跟的是系统,不是用户在宿主里的选择。
|
|
244
|
-
两者会分叉:系统亮色 + 用户在 DSH 选暗色时,跟 `prefers-color-scheme` 会显示成亮色,与宿主不一致
|
|
245
|
-
|
|
246
|
-
### 5.4 多语言
|
|
247
|
-
|
|
248
|
-
> **核心提供什么,核心就负责它的多语言。**
|
|
249
|
-
|
|
250
|
-
- 包内控件自带的**固定提示语**(校验错误 / 加载中 / 空态 / 确认取消)⇒ 包内置字典
|
|
251
|
-
(至少中英)+ 一个语言设置入口(`setLocale`,或探测宿主语言)
|
|
252
|
-
- **插件自己界面的文案由插件自己管**,包不提供插件级 i18n 框架
|
|
253
|
-
- 分界线:控件显示**调用方传入的业务数据**(任务名 / 文件名)⇒ 不翻译;
|
|
254
|
-
控件**自带的固定提示语** ⇒ 包翻译
|
|
255
|
-
|
|
256
|
-
### 5.5 依赖注入,不抓宿主全局
|
|
257
|
-
|
|
258
|
-
- 不传整个 `ctx`(传了就把包和宿主版本焊死),只传**需要的那一小块能力**
|
|
259
|
-
(`WorkspaceFilesFace` / `source` 这类最小接口)
|
|
260
|
-
- 好处:宿主 breaking 时改的是插件「取出那一小块」的一行,包不用动;包也能用假实现做单测
|
|
261
|
-
|
|
262
|
-
### 5.6 第三方依赖(**非**绝对禁止)
|
|
263
|
-
|
|
264
|
-
> **不是「绝对不允许引第三方包」。默认优先用官方件(`@deepseek-ai/dsh-client-ui-primitives`);当某个外部包明显比我们自己手搓的实现更好(更成熟 / 更稳 / 更省事 / 观感更好)时,可以引入——但必须先向用户提建议并说明理由,用户明确拍板后才可引入。**
|
|
265
|
-
|
|
266
|
-
- **引入前提**:该能力确实值得(如 toast 这类成熟库、文件预览要的解释器),自研没有性价比。
|
|
267
|
-
- **引入方式**:作为 core 的**内部依赖封装**,对外只暴露 core 自己的 API(如 `showToast`),**不 re-export 第三方包**,使消费者无法直接引用第三方、保持单点管控。
|
|
268
|
-
- **引入后必须真机验证**:在真实 DSH profile 加载,确认渲染 / 暗色跟随 `body[data-ds-dark-theme]` / 回调 / 与宿主层级无冲突。
|
|
269
|
-
- **仍硬禁止**(与「能否引第三方」是两条独立规则,本条不动):把 `react` / `react-dom` / 官方 `@deepseek-ai/*` 打进包(见 §5.1,会产生第二份 React 实例、Node 下 import 崩)。这条 `external + optional peer` 是宿主运行时决定的。
|
|
270
|
-
|
|
271
|
-
## 6. 关键接口约定
|
|
272
|
-
|
|
273
|
-
| 位置 | 约定 |
|
|
274
|
-
|---|---|
|
|
275
|
-
| design | `createStyleKit({ id })` → `{ registerStyle, ensureStyles, applyStyle }` |
|
|
276
|
-
| ui / ModelPicker | `variant: 'grouped' \| 'cascade'`(分组:一个下拉、完全独立 / 联动:供应商与模型两个下拉联动;2026-10-20 用户拍板两形态都要);**两种形态 onChange 都发最终模型 value**;「默认模型」选项默认提供(`allowDefault:false` 关),选中发 `''`。默认读 connectHost 喂入的真实目录,`groups` 仅作覆盖。**禁止用数字或无意义名** |
|
|
277
|
-
| ui / Picker | `mode: 'single' \| 'multiple'`、`max`(到上限已选项仍可反选)、`searchable`(搜索框开关)、`icon`(触发器前置 icon)、选项级 `icon`、`hint`(问号提示内置)、分组、空态、降级 |
|
|
278
|
-
| ui / DateTimePicker | `mode: 'single' \| 'range'`、`precision: 'day' \| 'hour' \| 'minute' \| 'second'`(同时管弹层步进、显示截断与默认宽度);single 传 `string \| null`、range 传 `[start, end] \| null`(本地 ISO 到毫秒);草稿态「确定」才 onChange,没选日期不传数据;起端补零 / 止端补满(day ⇒ 止 `23:59:59.999`) |
|
|
279
|
-
| ui / Table | `columns`(`children` 非空 = 分组表头,组件算 colSpan / rowSpan;`width` 数字按 px、`align` 控对齐)、`rows`(`{ key, cells }`,cells 按叶子 key 给 ReactNode)、`selectedKeys`、`onRowClick`(传了才可点,Enter / 空格等价)、`emptyText`(默认核心字典)、`ariaLabel`、`pagination`(可选内建分页,见下行);**外观分组件分文件**:`Table` 只 import 自皮肤 CSS,预留 `TableGrid` / `TableZebra` 各自独立,引哪个打包哪个;列宽合计超过容器时由调用方的滚动容器兜住 |
|
|
280
|
-
| ui / Pagination | `Pagination({ page, total, pageSize?, onChange, align?, siblingCount?, boundaryCount?, pageSizeOptions?, showTotal?, hideOnSinglePage?, simple?, disabled?, ariaLabel?, translate? })` —— 只给当前页 / 每页条数 / 总条数,**总页数 `ceil(total/pageSize)`、越界夹取、省略窗口全由控件算**;`align` 默认 `right`;`pageSizeOptions` 传了才出现下拉(改 size 时 `onChange(1, next)`);`hideOnSinglePage` 为 `true` 且只有一页时整条不渲染。<br>`Table` 内建:`pagination?: Omit<PaginationProps,'total'> & { total?: number }` —— **不传 `total` = 本地分页**(`rows` 是全量,表格按当前页切片),**传了 `total` = 服务端分页**(`rows` 只放当前页那几条,不切片) |
|
|
281
|
-
| explorer | `WorkspaceFilesFace`(`list` / `stat` / `read` 最小面)由 `connectHost(ctx)` 接线后核心自己持有,组件不抓宿主全局、调用方也不逐次传(2026-10-28 改);对外 = 两命令式能力 `openFilePreview({ mount, path })`(侧边栏预览)+ `pickWorkspaceFile({ anchor })`(Promise 选文件,回传工作区相对路径),共用同一 `FileBrowser` 面板(2026-10-20 拍板) |
|
|
282
|
-
| explorer / WorkspacePicker | `WorkspacePicker({ mode, max, onChange, allowDefault, defaultLabel, … })` —— **无数据参数**:connectHost 接线后自动订官方 `workspaces` 服务快照,选中值为 `workspaceId`;「所有工作区」默认项默认提供、选中发 `''`(2026-10-20) |
|
|
283
|
-
| session | `SessionPreview({ sessionId, source, variant })` —— `source` = 取数能力接口(会话预览内部有交互:传输文件等,光有静态消息流不够) |
|
|
284
|
-
|
|
285
|
-
## 7. 分期与任务切分
|
|
39
|
+
- 设置页骨架(**候补**:等出现第二个愿意用它的消费者再抽)
|
|
40
|
+
- `host` 子包(已取消)
|
|
41
|
+
- `llm/` 独立子包(已取消,ModelPicker 进 `ui`)
|
|
42
|
+
- 业务件:业务选择器 / 日历 / 业务 token / 页面几何 / 插件私有路由 / DB 表
|
|
286
43
|
|
|
287
|
-
|
|
44
|
+
## 4. 只有本文记着的约束
|
|
288
45
|
|
|
289
|
-
|
|
290
|
-
|---|---|---|
|
|
291
|
-
| 骨架 | package.json exports / tsconfig / 构建出 dist | ✅ 已完成(`tsc` 出 ESM + d.ts,不走 tsdown) |
|
|
292
|
-
| v1 | `design` + `utils` + `ui` | ✅ 已完成(零件 + Picker / ModelPicker + Modal / toast / 空态) |
|
|
293
|
-
| v2 | `explorer`(用户拍板要抽) | ✅ 已完成(浏览面板 + 预览;**选择器后移至 ui**,见 §2.4) |
|
|
294
|
-
| v2+ | `explorer` 重做(2026-10-20) | ✅ 已完成(FileBrowser 面板 + `openFilePreview` / `pickWorkspaceFile` 两能力 + 全量预览:md / 代码高亮 / HTML / PDF / Office;官方件经 `./ui/official` 子路径) |
|
|
295
|
-
| v3 | `session` | ⚠️ **半完成**:契约与三种承载已好,**官方会话 UI 镜像未搬**(只做最简渲染) |
|
|
296
|
-
| v3+ | 控件样式按需注入(2026-10-30) | ✅ 已完成(`css.ts` 停全量聚合;27 个组件各自注入自己那份;只 `import { Button }` 时 CSS 文本 71.7 KB → 9.4 KB。**不采用 `@layer`**:未分层样式压过任何层且层级裁决优先于特异性,包进层会被宿主元素级重置反压) |
|
|
297
|
-
| v3+ | 表格样式(2026-10-30) | ✅ 第一档 Plain 落地(`Table`:基础层 + 皮肤分文件注入,中性灰表头 / 极淡行线 / 极淡中性灰 hover;表头与通栏互换底色;**默认无竖线、外框只上下**,竖线按列 opt-in;三种外观 = all+divider / y+divider / 默认)+ 通栏分组 `groups`;预留 `TableGrid` / `TableZebra` 两档同族独立组件 |
|
|
298
|
-
| v3+ | 分页(2026-10-30) | ✅ 已完成(独立 `Pagination` + `Table` 内建 `pagination`;纯逻辑 `pagination-logic.ts` 可单测;默认 right、1/1 窗口、`hideOnSinglePage` / `showTotal` / `pageSizeOptions` / `simple` 全铺;本地 / 服务端分页以「传不传 `total`」分叉) |
|
|
299
|
-
| 文档 | README 接入指南 | ✅ 已完成 |
|
|
46
|
+
这几条在别处还没有落点,先记在这;写进归属文档后删掉。
|
|
300
47
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
48
|
+
- **多语言**:核心提供的固定提示语由核心自己翻译(内置中英 + `setLocale`);插件界面文案插件自管。
|
|
49
|
+
- **依赖注入**:不传整个 `ctx`,只传需要的那一小块能力 —— 传了整个就把包和宿主版本焊死。
|
|
50
|
+
- **第三方依赖**:默认优先官方件;明显更好的包可以引,但必须先说明理由、经用户拍板,
|
|
51
|
+
且作为内部依赖封装、不 re-export,消费方看不见第三方。
|
|
304
52
|
|
|
305
|
-
|
|
306
|
-
> 已证明 core 在宿主里可用;上面「消费者插件接入」专指把 `dsh-task-dispatch-table` 等迁到 core、
|
|
307
|
-
> 删掉它们各自维护的副本——那是另一桩事,不在本轮范围。
|
|
53
|
+
打包产物、样式注入工厂化、明暗判据、注入顺序(不采用 `@layer`)→ `docs/design/style.md` 与 `AGENTS.md`。
|
|
308
54
|
|
|
309
|
-
##
|
|
55
|
+
## 5. 待归属
|
|
310
56
|
|
|
311
|
-
|
|
312
|
-
- 包发 dist,**消费者不跑构建**(复现硬约束)
|
|
313
|
-
- 发布前 `npm view dsh-plugin-core` 复核包名
|
|
314
|
-
- 消费者接入(先 `dsh-task-dispatch-table`,删自有副本)⇒ 另开任务,不在本轮改兄弟仓
|
|
315
|
-
- 接入后控件视觉与接入前**逐一截图对比**,差异要么被接受要么回滚
|
|
57
|
+
(空。新结论先写这里,写进归属文档后删。)
|
|
316
58
|
|
|
317
|
-
##
|
|
59
|
+
## 6. 发布
|
|
318
60
|
|
|
319
|
-
|
|
320
|
-
- OIDC 发布,复刻现有三个仓的 workflow
|
|
321
|
-
- 包名 `dsh-plugin-core`(2026-10-18 探为空闲,发布前复核);备选 `dsh-plugin-koc-core`
|
|
61
|
+
npm 公开包(私有包会让用户装插件时配 token);OIDC 发布,打 `vX.Y.Z` tag 触发,流程见 `AGENTS.md`。
|
package/package.json
CHANGED