dsh-plugin-core 0.2.14 → 0.4.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/LICENSE +21 -0
- package/README.md +52 -83
- package/dist/design/tokens-css.d.ts +1 -1
- package/dist/design/tokens-css.d.ts.map +1 -1
- package/dist/design/tokens-css.generated.d.ts +2 -0
- package/dist/design/tokens-css.generated.d.ts.map +1 -0
- package/dist/design/tokens-css.generated.js +4 -0
- package/dist/design/tokens-css.generated.js.map +1 -0
- package/dist/design/tokens-css.js +1 -252
- package/dist/design/tokens-css.js.map +1 -1
- package/dist/explorer/FileBrowser.d.ts +41 -0
- package/dist/explorer/FileBrowser.d.ts.map +1 -0
- package/dist/explorer/FileBrowser.js +659 -0
- package/dist/explorer/FileBrowser.js.map +1 -0
- package/dist/explorer/explorer-css.d.ts +1 -1
- package/dist/explorer/explorer-css.d.ts.map +1 -1
- package/dist/explorer/explorer-css.generated.d.ts +2 -0
- package/dist/explorer/explorer-css.generated.d.ts.map +1 -0
- package/dist/explorer/explorer-css.generated.js +4 -0
- package/dist/explorer/explorer-css.generated.js.map +1 -0
- package/dist/explorer/explorer-css.js +1 -31
- package/dist/explorer/explorer-css.js.map +1 -1
- package/dist/explorer/index.d.ts +4 -2
- package/dist/explorer/index.d.ts.map +1 -1
- package/dist/explorer/index.js +4 -2
- package/dist/explorer/index.js.map +1 -1
- package/dist/explorer/open.d.ts +103 -0
- package/dist/explorer/open.d.ts.map +1 -0
- package/dist/explorer/open.js +282 -0
- package/dist/explorer/open.js.map +1 -0
- package/dist/explorer/preview/BytesPreview.d.ts +13 -0
- package/dist/explorer/preview/BytesPreview.d.ts.map +1 -0
- package/dist/explorer/preview/BytesPreview.js +56 -0
- package/dist/explorer/preview/BytesPreview.js.map +1 -0
- package/dist/explorer/preview/HtmlPreview.d.ts +18 -0
- package/dist/explorer/preview/HtmlPreview.d.ts.map +1 -0
- package/dist/explorer/preview/HtmlPreview.js +112 -0
- package/dist/explorer/preview/HtmlPreview.js.map +1 -0
- package/dist/explorer/preview/OfficePreview.d.ts +11 -0
- package/dist/explorer/preview/OfficePreview.d.ts.map +1 -0
- package/dist/explorer/preview/OfficePreview.js +53 -0
- package/dist/explorer/preview/OfficePreview.js.map +1 -0
- package/dist/explorer/preview/TextPreview.d.ts +17 -0
- package/dist/explorer/preview/TextPreview.d.ts.map +1 -0
- package/dist/explorer/preview/TextPreview.js +95 -0
- package/dist/explorer/preview/TextPreview.js.map +1 -0
- package/dist/explorer/preview/index.d.ts +10 -3
- package/dist/explorer/preview/index.d.ts.map +1 -1
- package/dist/explorer/preview/index.js +52 -55
- package/dist/explorer/preview/index.js.map +1 -1
- package/dist/explorer/preview/md-labels.d.ts +3 -0
- package/dist/explorer/preview/md-labels.d.ts.map +1 -0
- package/dist/explorer/preview/md-labels.js +12 -0
- package/dist/explorer/preview/md-labels.js.map +1 -0
- package/dist/explorer/types.d.ts +186 -4
- package/dist/explorer/types.d.ts.map +1 -1
- package/dist/explorer/types.js +401 -14
- package/dist/explorer/types.js.map +1 -1
- package/dist/host/index.d.ts +66 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +60 -0
- package/dist/host/index.js.map +1 -0
- package/dist/session/SessionViewModal.d.ts +42 -0
- package/dist/session/SessionViewModal.d.ts.map +1 -0
- package/dist/session/SessionViewModal.js +997 -0
- package/dist/session/SessionViewModal.js.map +1 -0
- package/dist/session/changes.d.ts +73 -0
- package/dist/session/changes.d.ts.map +1 -0
- package/dist/session/changes.js +134 -0
- package/dist/session/changes.js.map +1 -0
- package/dist/session/faces.d.ts +198 -0
- package/dist/session/faces.d.ts.map +1 -0
- package/dist/session/faces.js +17 -0
- package/dist/session/faces.js.map +1 -0
- package/dist/session/index.d.ts +5 -23
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +25 -70
- package/dist/session/index.js.map +1 -1
- package/dist/session/mirror/ChangedFileDiff.d.ts +22 -0
- package/dist/session/mirror/ChangedFileDiff.d.ts.map +1 -0
- package/dist/session/mirror/ChangedFileDiff.js +157 -0
- package/dist/session/mirror/ChangedFileDiff.js.map +1 -0
- package/dist/session/mirror/ChangedFilesCard.d.ts +18 -0
- package/dist/session/mirror/ChangedFilesCard.d.ts.map +1 -0
- package/dist/session/mirror/ChangedFilesCard.js +158 -0
- package/dist/session/mirror/ChangedFilesCard.js.map +1 -0
- package/dist/session/mirror/ChatGroupSeat.d.ts +24 -0
- package/dist/session/mirror/ChatGroupSeat.d.ts.map +1 -0
- package/dist/session/mirror/ChatGroupSeat.js +134 -0
- package/dist/session/mirror/ChatGroupSeat.js.map +1 -0
- package/dist/session/mirror/ChatNodeSeat.d.ts +43 -0
- package/dist/session/mirror/ChatNodeSeat.d.ts.map +1 -0
- package/dist/session/mirror/ChatNodeSeat.js +133 -0
- package/dist/session/mirror/ChatNodeSeat.js.map +1 -0
- package/dist/session/mirror/ChatView.d.ts +47 -0
- package/dist/session/mirror/ChatView.d.ts.map +1 -0
- package/dist/session/mirror/ChatView.js +127 -0
- package/dist/session/mirror/ChatView.js.map +1 -0
- package/dist/session/mirror/CommandCard.d.ts +20 -0
- package/dist/session/mirror/CommandCard.d.ts.map +1 -0
- package/dist/session/mirror/CommandCard.js +69 -0
- package/dist/session/mirror/CommandCard.js.map +1 -0
- package/dist/session/mirror/Deliverables.d.ts +24 -0
- package/dist/session/mirror/Deliverables.d.ts.map +1 -0
- package/dist/session/mirror/Deliverables.js +134 -0
- package/dist/session/mirror/Deliverables.js.map +1 -0
- package/dist/session/mirror/GenericCommandCard.d.ts +25 -0
- package/dist/session/mirror/GenericCommandCard.d.ts.map +1 -0
- package/dist/session/mirror/GenericCommandCard.js +567 -0
- package/dist/session/mirror/GenericCommandCard.js.map +1 -0
- package/dist/session/mirror/MessageIconActions.d.ts +16 -0
- package/dist/session/mirror/MessageIconActions.d.ts.map +1 -0
- package/dist/session/mirror/MessageIconActions.js +71 -0
- package/dist/session/mirror/MessageIconActions.js.map +1 -0
- package/dist/session/mirror/MessageItem.d.ts +66 -0
- package/dist/session/mirror/MessageItem.d.ts.map +1 -0
- package/dist/session/mirror/MessageItem.js +135 -0
- package/dist/session/mirror/MessageItem.js.map +1 -0
- package/dist/session/mirror/ReasoningRow.d.ts +11 -0
- package/dist/session/mirror/ReasoningRow.d.ts.map +1 -0
- package/dist/session/mirror/ReasoningRow.js +49 -0
- package/dist/session/mirror/ReasoningRow.js.map +1 -0
- package/dist/session/mirror/StatDialog.d.ts +20 -0
- package/dist/session/mirror/StatDialog.d.ts.map +1 -0
- package/dist/session/mirror/StatDialog.js +36 -0
- package/dist/session/mirror/StatDialog.js.map +1 -0
- package/dist/session/mirror/TurnProcessNodeView.d.ts +10 -0
- package/dist/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
- package/dist/session/mirror/TurnProcessNodeView.js +68 -0
- package/dist/session/mirror/TurnProcessNodeView.js.map +1 -0
- package/dist/session/mirror/TurnTailNodeView.d.ts +32 -0
- package/dist/session/mirror/TurnTailNodeView.d.ts.map +1 -0
- package/dist/session/mirror/TurnTailNodeView.js +48 -0
- package/dist/session/mirror/TurnTailNodeView.js.map +1 -0
- package/dist/session/mirror/TurnTriggerNodeView.d.ts +14 -0
- package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
- package/dist/session/mirror/TurnTriggerNodeView.js +87 -0
- package/dist/session/mirror/TurnTriggerNodeView.js.map +1 -0
- package/dist/session/mirror/TurnUsagePanel.d.ts +21 -0
- package/dist/session/mirror/TurnUsagePanel.d.ts.map +1 -0
- package/dist/session/mirror/TurnUsagePanel.js +41 -0
- package/dist/session/mirror/TurnUsagePanel.js.map +1 -0
- package/dist/session/mirror/message-chrome.d.ts +33 -0
- package/dist/session/mirror/message-chrome.d.ts.map +1 -0
- package/dist/session/mirror/message-chrome.js +158 -0
- package/dist/session/mirror/message-chrome.js.map +1 -0
- package/dist/session/mirror/process-groups.d.ts +56 -0
- package/dist/session/mirror/process-groups.d.ts.map +1 -0
- package/dist/session/mirror/process-groups.js +202 -0
- package/dist/session/mirror/process-groups.js.map +1 -0
- package/dist/session/official-classes.d.ts +28 -0
- package/dist/session/official-classes.d.ts.map +1 -0
- package/dist/session/official-classes.js +146 -0
- package/dist/session/official-classes.js.map +1 -0
- package/dist/session/open-session-view.d.ts +17 -0
- package/dist/session/open-session-view.d.ts.map +1 -0
- package/dist/session/open-session-view.js +136 -0
- package/dist/session/open-session-view.js.map +1 -0
- package/dist/session/session-css.d.ts +1 -1
- package/dist/session/session-css.d.ts.map +1 -1
- package/dist/session/session-css.generated.d.ts +2 -0
- package/dist/session/session-css.generated.d.ts.map +1 -0
- package/dist/session/session-css.generated.js +4 -0
- package/dist/session/session-css.generated.js.map +1 -0
- package/dist/session/session-css.js +1 -17
- package/dist/session/session-css.js.map +1 -1
- package/dist/ui/AlertModal.d.ts +28 -0
- package/dist/ui/AlertModal.d.ts.map +1 -0
- package/dist/ui/AlertModal.js +29 -0
- package/dist/ui/AlertModal.js.map +1 -0
- package/dist/ui/Button.d.ts.map +1 -1
- package/dist/ui/Button.js +14 -1
- package/dist/ui/Button.js.map +1 -1
- package/dist/ui/Card.d.ts +4 -2
- package/dist/ui/Card.d.ts.map +1 -1
- package/dist/ui/Card.js +12 -6
- package/dist/ui/Card.js.map +1 -1
- package/dist/ui/Chip.d.ts +9 -1
- package/dist/ui/Chip.d.ts.map +1 -1
- package/dist/ui/Chip.js +8 -2
- package/dist/ui/Chip.js.map +1 -1
- package/dist/ui/CodeViewer.d.ts +36 -0
- package/dist/ui/CodeViewer.d.ts.map +1 -0
- package/dist/ui/CodeViewer.js +90 -0
- package/dist/ui/CodeViewer.js.map +1 -0
- package/dist/ui/ConfirmModal.d.ts +30 -0
- package/dist/ui/ConfirmModal.d.ts.map +1 -0
- package/dist/ui/ConfirmModal.js +23 -0
- package/dist/ui/ConfirmModal.js.map +1 -0
- package/dist/ui/DateTimePicker.d.ts +45 -0
- package/dist/ui/DateTimePicker.d.ts.map +1 -0
- package/dist/ui/DateTimePicker.js +447 -0
- package/dist/ui/DateTimePicker.js.map +1 -0
- package/dist/ui/Field.d.ts +11 -2
- package/dist/ui/Field.d.ts.map +1 -1
- package/dist/ui/Field.js +15 -5
- package/dist/ui/Field.js.map +1 -1
- package/dist/ui/MarqueeText.d.ts.map +1 -1
- package/dist/ui/MarqueeText.js +3 -1
- package/dist/ui/MarqueeText.js.map +1 -1
- package/dist/ui/Modal.d.ts +25 -3
- package/dist/ui/Modal.d.ts.map +1 -1
- package/dist/ui/Modal.js +41 -7
- package/dist/ui/Modal.js.map +1 -1
- package/dist/ui/ModelPicker.d.ts +25 -12
- package/dist/ui/ModelPicker.d.ts.map +1 -1
- package/dist/ui/ModelPicker.js +67 -19
- package/dist/ui/ModelPicker.js.map +1 -1
- package/dist/ui/PanelDock.d.ts +127 -0
- package/dist/ui/PanelDock.d.ts.map +1 -0
- package/dist/ui/PanelDock.js +297 -0
- package/dist/ui/PanelDock.js.map +1 -0
- package/dist/ui/Picker.d.ts +8 -2
- package/dist/ui/Picker.d.ts.map +1 -1
- package/dist/ui/Picker.js +86 -18
- package/dist/ui/Picker.js.map +1 -1
- package/dist/ui/SectionHead.d.ts +3 -3
- package/dist/ui/SectionHead.d.ts.map +1 -1
- package/dist/ui/SectionHead.js +4 -4
- package/dist/ui/SectionHead.js.map +1 -1
- package/dist/ui/Segmented.d.ts +4 -0
- package/dist/ui/Segmented.d.ts.map +1 -1
- package/dist/ui/Segmented.js +88 -31
- package/dist/ui/Segmented.js.map +1 -1
- package/dist/ui/Textarea.d.ts +2 -0
- package/dist/ui/Textarea.d.ts.map +1 -1
- package/dist/ui/Textarea.js +6 -1
- package/dist/ui/Textarea.js.map +1 -1
- package/dist/ui/Toast.d.ts +41 -8
- package/dist/ui/Toast.d.ts.map +1 -1
- package/dist/ui/Toast.js +216 -28
- package/dist/ui/Toast.js.map +1 -1
- package/dist/ui/WorkspacePicker.d.ts +15 -28
- package/dist/ui/WorkspacePicker.d.ts.map +1 -1
- package/dist/ui/WorkspacePicker.js +18 -27
- package/dist/ui/WorkspacePicker.js.map +1 -1
- package/dist/ui/card-css.d.ts +1 -1
- package/dist/ui/card-css.d.ts.map +1 -1
- package/dist/ui/card-css.generated.d.ts +2 -0
- package/dist/ui/card-css.generated.d.ts.map +1 -0
- package/dist/ui/card-css.generated.js +4 -0
- package/dist/ui/card-css.generated.js.map +1 -0
- package/dist/ui/card-css.js +1 -35
- package/dist/ui/card-css.js.map +1 -1
- package/dist/ui/chip-css.d.ts +1 -1
- package/dist/ui/chip-css.d.ts.map +1 -1
- package/dist/ui/chip-css.generated.d.ts +2 -0
- package/dist/ui/chip-css.generated.d.ts.map +1 -0
- package/dist/ui/chip-css.generated.js +4 -0
- package/dist/ui/chip-css.generated.js.map +1 -0
- package/dist/ui/chip-css.js +1 -17
- package/dist/ui/chip-css.js.map +1 -1
- package/dist/ui/code-viewer-css.d.ts +2 -0
- package/dist/ui/code-viewer-css.d.ts.map +1 -0
- package/dist/ui/code-viewer-css.generated.d.ts +2 -0
- package/dist/ui/code-viewer-css.generated.d.ts.map +1 -0
- package/dist/ui/code-viewer-css.generated.js +4 -0
- package/dist/ui/code-viewer-css.generated.js.map +1 -0
- package/dist/ui/code-viewer-css.js +3 -0
- package/dist/ui/code-viewer-css.js.map +1 -0
- package/dist/ui/code-viewer-lang.d.ts +15 -0
- package/dist/ui/code-viewer-lang.d.ts.map +1 -0
- package/dist/ui/code-viewer-lang.js +190 -0
- package/dist/ui/code-viewer-lang.js.map +1 -0
- package/dist/ui/code-viewer-theme.d.ts +5 -0
- package/dist/ui/code-viewer-theme.d.ts.map +1 -0
- package/dist/ui/code-viewer-theme.js +138 -0
- package/dist/ui/code-viewer-theme.js.map +1 -0
- package/dist/ui/controls/back-to-top-css.generated.d.ts +2 -0
- package/dist/ui/controls/back-to-top-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/back-to-top-css.generated.js +4 -0
- package/dist/ui/controls/back-to-top-css.generated.js.map +1 -0
- package/dist/ui/controls/button-css.generated.d.ts +2 -0
- package/dist/ui/controls/button-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/button-css.generated.js +4 -0
- package/dist/ui/controls/button-css.generated.js.map +1 -0
- package/dist/ui/controls/datetime-css.generated.d.ts +2 -0
- package/dist/ui/controls/datetime-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/datetime-css.generated.js +4 -0
- package/dist/ui/controls/datetime-css.generated.js.map +1 -0
- package/dist/ui/controls/field-css.generated.d.ts +2 -0
- package/dist/ui/controls/field-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/field-css.generated.js +4 -0
- package/dist/ui/controls/field-css.generated.js.map +1 -0
- package/dist/ui/controls/hint-css.generated.d.ts +2 -0
- package/dist/ui/controls/hint-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/hint-css.generated.js +4 -0
- package/dist/ui/controls/hint-css.generated.js.map +1 -0
- package/dist/ui/controls/loading-css.generated.d.ts +2 -0
- package/dist/ui/controls/loading-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/loading-css.generated.js +4 -0
- package/dist/ui/controls/loading-css.generated.js.map +1 -0
- package/dist/ui/controls/segmented-css.generated.d.ts +2 -0
- package/dist/ui/controls/segmented-css.generated.d.ts.map +1 -0
- package/dist/ui/controls/segmented-css.generated.js +4 -0
- package/dist/ui/controls/segmented-css.generated.js.map +1 -0
- package/dist/ui/controls-css.d.ts +7 -8
- package/dist/ui/controls-css.d.ts.map +1 -1
- package/dist/ui/controls-css.js +13 -11
- package/dist/ui/controls-css.js.map +1 -1
- package/dist/ui/css.d.ts +5 -0
- package/dist/ui/css.d.ts.map +1 -1
- package/dist/ui/css.js +13 -4
- package/dist/ui/css.js.map +1 -1
- package/dist/ui/datetime-logic.d.ts +100 -0
- package/dist/ui/datetime-logic.d.ts.map +1 -0
- package/dist/ui/datetime-logic.js +193 -0
- package/dist/ui/datetime-logic.js.map +1 -0
- package/dist/ui/feedback-css.d.ts +1 -1
- package/dist/ui/feedback-css.d.ts.map +1 -1
- package/dist/ui/feedback-css.generated.d.ts +2 -0
- package/dist/ui/feedback-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback-css.generated.js +4 -0
- package/dist/ui/feedback-css.generated.js.map +1 -0
- package/dist/ui/feedback-css.js +1 -53
- package/dist/ui/feedback-css.js.map +1 -1
- package/dist/ui/host-data.d.ts +103 -0
- package/dist/ui/host-data.d.ts.map +1 -0
- package/dist/ui/host-data.js +106 -0
- package/dist/ui/host-data.js.map +1 -0
- package/dist/ui/host-toast.d.ts +23 -0
- package/dist/ui/host-toast.d.ts.map +1 -0
- package/dist/ui/host-toast.js +34 -0
- package/dist/ui/host-toast.js.map +1 -0
- package/dist/ui/index.d.ts +12 -6
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +10 -4
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/marquee-css.d.ts +2 -0
- package/dist/ui/marquee-css.d.ts.map +1 -0
- package/dist/ui/marquee-css.generated.d.ts +2 -0
- package/dist/ui/marquee-css.generated.d.ts.map +1 -0
- package/dist/ui/marquee-css.generated.js +4 -0
- package/dist/ui/marquee-css.generated.js.map +1 -0
- package/dist/ui/marquee-css.js +4 -0
- package/dist/ui/marquee-css.js.map +1 -0
- package/dist/ui/modal-host.d.ts +30 -0
- package/dist/ui/modal-host.d.ts.map +1 -0
- package/dist/ui/modal-host.js +101 -0
- package/dist/ui/modal-host.js.map +1 -0
- package/dist/ui/official.d.ts.map +1 -1
- package/dist/ui/official.js +45 -1
- package/dist/ui/official.js.map +1 -1
- package/dist/ui/panel-dock-css.d.ts +2 -0
- package/dist/ui/panel-dock-css.d.ts.map +1 -0
- package/dist/ui/panel-dock-css.generated.d.ts +2 -0
- package/dist/ui/panel-dock-css.generated.d.ts.map +1 -0
- package/dist/ui/panel-dock-css.generated.js +4 -0
- package/dist/ui/panel-dock-css.generated.js.map +1 -0
- package/dist/ui/panel-dock-css.js +4 -0
- package/dist/ui/panel-dock-css.js.map +1 -0
- package/dist/ui/panel-dock-logic.d.ts +50 -0
- package/dist/ui/panel-dock-logic.d.ts.map +1 -0
- package/dist/ui/panel-dock-logic.js +64 -0
- package/dist/ui/panel-dock-logic.js.map +1 -0
- package/dist/ui/picker-css.d.ts +1 -1
- package/dist/ui/picker-css.d.ts.map +1 -1
- package/dist/ui/picker-css.generated.d.ts +2 -0
- package/dist/ui/picker-css.generated.d.ts.map +1 -0
- package/dist/ui/picker-css.generated.js +4 -0
- package/dist/ui/picker-css.generated.js.map +1 -0
- package/dist/ui/picker-css.js +1 -48
- package/dist/ui/picker-css.js.map +1 -1
- package/dist/ui/picker-icons.d.ts +12 -0
- package/dist/ui/picker-icons.d.ts.map +1 -0
- package/dist/ui/picker-icons.js +29 -0
- package/dist/ui/picker-icons.js.map +1 -0
- package/dist/ui/picker-logic.d.ts +4 -1
- package/dist/ui/picker-logic.d.ts.map +1 -1
- package/dist/ui/picker-logic.js +1 -2
- package/dist/ui/picker-logic.js.map +1 -1
- package/dist/ui/resizer.d.ts +3 -1
- package/dist/ui/resizer.d.ts.map +1 -1
- package/dist/ui/resizer.js +1 -1
- package/dist/ui/resizer.js.map +1 -1
- package/dist/ui/toast-host.d.ts +24 -0
- package/dist/ui/toast-host.d.ts.map +1 -0
- package/dist/ui/toast-host.js +20 -0
- package/dist/ui/toast-host.js.map +1 -0
- package/dist/utils/date.d.ts +8 -0
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +16 -0
- package/dist/utils/date.js.map +1 -1
- package/dist/utils/i18n.d.ts +1 -1
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +437 -18
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +1 -0
- package/dist/utils/path.js.map +1 -1
- package/docs/README.md +12 -5
- package/docs/design/architecture.md +38 -8
- package/docs/design/copywriting.md +95 -0
- package/docs/design/doc-format.md +80 -0
- package/docs/design/doc-format.ts +39 -0
- package/docs/design/external/dsh-host.md +150 -1
- package/docs/design/features.md +4 -17
- package/docs/design/methods.md +13 -34
- package/docs/design/structure.md +25 -22
- package/docs/design/style.md +24 -50
- package/docs/help/design.doc.ts +112 -0
- package/docs/help/design.md +88 -0
- package/docs/help/explorer.doc.ts +136 -0
- package/docs/help/explorer.md +68 -0
- package/docs/help/index.doc.ts +79 -0
- package/docs/help/index.md +28 -0
- package/docs/help/integration.doc.ts +114 -0
- package/docs/help/integration.md +127 -0
- package/docs/help/methods.md +58 -0
- package/docs/help/session.doc.ts +154 -0
- package/docs/help/session.md +91 -0
- package/docs/help/style.md +80 -0
- package/docs/help/ui.doc.ts +404 -0
- package/docs/help/ui.md +342 -0
- package/docs/help/utils.doc.ts +133 -0
- package/docs/help/utils.md +96 -0
- package/docs/requirements.md +33 -12
- package/package.json +44 -3
- package/dist/ui/ErrorBoundary.d.ts +0 -22
- package/dist/ui/ErrorBoundary.d.ts.map +0 -1
- package/dist/ui/ErrorBoundary.js +0 -30
- package/dist/ui/ErrorBoundary.js.map +0 -1
- package/docs/design/features/design.md +0 -55
- package/docs/design/features/explorer.md +0 -73
- package/docs/design/features/session.md +0 -70
- package/docs/design/features/ui.md +0 -225
- package/docs/design/features/utils.md +0 -64
- package/docs/examples/integration.md +0 -103
package/dist/ui/official.js
CHANGED
|
@@ -21,6 +21,9 @@ export * from '@deepseek-ai/dsh-client-ui-primitives';
|
|
|
21
21
|
/** 官方命名空间:给运行时兜底 / 审计用;业务代码优先用上面的具名导出。 */
|
|
22
22
|
export { Official };
|
|
23
23
|
const warned = new Set();
|
|
24
|
+
// biome 的 noDynamicNamespaceImportAccess 不许直接 `Official[name]`:
|
|
25
|
+
// 先把命名空间收进普通 Record 再按名取(语义不变,避免动态访问命名空间)。
|
|
26
|
+
const officialRegistry = Official;
|
|
24
27
|
/**
|
|
25
28
|
* 运行时取一个官方导出;缺失(宿主升级改名 / 老宿主没有)时**一次性**告警并回落到 `fallback`,
|
|
26
29
|
* 不静默白屏。仅用于「官方可能漂移」的边角件;稳定常用件直接用具名导出即可。
|
|
@@ -29,7 +32,7 @@ const warned = new Set();
|
|
|
29
32
|
* @param fallback - 缺失时的兜底(通常是保留的自绘实现)。
|
|
30
33
|
*/
|
|
31
34
|
export function pickOfficial(name, fallback) {
|
|
32
|
-
const value =
|
|
35
|
+
const value = officialRegistry[name];
|
|
33
36
|
if (value === undefined) {
|
|
34
37
|
if (!warned.has(name)) {
|
|
35
38
|
warned.add(name);
|
|
@@ -39,4 +42,45 @@ export function pickOfficial(name, fallback) {
|
|
|
39
42
|
}
|
|
40
43
|
return value;
|
|
41
44
|
}
|
|
45
|
+
// ── 宿主样式命令式弹窗:渲染逻辑住本文件(唯一 import 平台模块处),运行时注册给 modal-host ──
|
|
46
|
+
// 默认命令(core 皮肤)在 ui 入口自绘小确认框家族;宿主皮肤必须经官方 Modal,
|
|
47
|
+
// 故这里实现后通过 registerHostDialog 注入,confirmModal/alertModal 传 skin:"host" 即调用,保持 ui 入口零官方依赖。
|
|
48
|
+
import { createElement as h } from 'react';
|
|
49
|
+
import { createRoot } from 'react-dom/client';
|
|
50
|
+
import { Button } from './Button.js';
|
|
51
|
+
import { t } from '../utils/i18n.js';
|
|
52
|
+
import { registerHostDialog } from './modal-host.js';
|
|
53
|
+
function mountHostModal(render) {
|
|
54
|
+
if (typeof document === 'undefined')
|
|
55
|
+
return;
|
|
56
|
+
const container = document.createElement('div');
|
|
57
|
+
document.body.appendChild(container);
|
|
58
|
+
const root = createRoot(container);
|
|
59
|
+
const close = () => {
|
|
60
|
+
root.unmount();
|
|
61
|
+
container.remove();
|
|
62
|
+
};
|
|
63
|
+
root.render(render(close));
|
|
64
|
+
}
|
|
65
|
+
const hostConfirm = (opts) => new Promise((resolve) => {
|
|
66
|
+
mountHostModal((close) => h(Official.Modal, {
|
|
67
|
+
open: true,
|
|
68
|
+
onClose: () => { close(); resolve(false); },
|
|
69
|
+
title: opts.title ?? '',
|
|
70
|
+
closeLabel: t('modalClose'),
|
|
71
|
+
description: opts.description,
|
|
72
|
+
footer: h('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: '8px' } }, h(Button, { variant: 'outline', onClick: () => { close(); resolve(false); } }, opts.cancelText ?? t('cancel')), h(Button, { variant: opts.danger === true ? 'danger' : 'primary', onClick: () => { close(); resolve(true); } }, opts.confirmText ?? t('confirm'))),
|
|
73
|
+
}));
|
|
74
|
+
});
|
|
75
|
+
const hostAlert = (opts) => new Promise((resolve) => {
|
|
76
|
+
mountHostModal((close) => h(Official.Modal, {
|
|
77
|
+
open: true,
|
|
78
|
+
onClose: () => { close(); resolve(); },
|
|
79
|
+
title: opts.title ?? '',
|
|
80
|
+
closeLabel: t('modalClose'),
|
|
81
|
+
description: opts.description,
|
|
82
|
+
footer: h('div', { style: { display: 'flex', justifyContent: 'flex-end' } }, h(Button, { variant: 'primary', onClick: () => { close(); resolve(); } }, opts.confirmText ?? t('dialogOk'))),
|
|
83
|
+
}));
|
|
84
|
+
});
|
|
85
|
+
registerHostDialog({ confirm: hostConfirm, alert: hostAlert });
|
|
42
86
|
//# sourceMappingURL=official.js.map
|
package/dist/ui/official.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official.js","sourceRoot":"","sources":["../../src/ui/official.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,QAAQ,MAAM,uCAAuC,CAAA;AAEjE,cAAc,uCAAuC,CAAA;AAErD,0CAA0C;AAC1C,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;AAEhC;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAO,EACP,QAA8B;IAE9B,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"official.js","sourceRoot":"","sources":["../../src/ui/official.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-css.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const PANEL_DOCK_CSS = "\n/* \u505C\u9760\u680F = **\u5E03\u5C40\u6210\u5458**\uFF0C\u4E0D\u662F\u6D6E\u5C42\uFF1A\u5B83\u5360\u5BBD\u5EA6\u3001\u628A\u4E3B\u533A\u771F\u6B63\u6324\u7A84\uFF08\u5144\u5F1F\u9879\u76EE 2026-09-28\uFF1A\n \u300C\u5206\u680F\u538B\u8FC7\u6765\uFF0C\u4E0D\u662F\u76D6\u4E0A\u53BB\u300D\uFF09\u3002\u6240\u4EE5\u8C03\u7528\u65B9\u5FC5\u987B\u628A\u5B83\u653E\u8FDB\u81EA\u5DF1\u7684 flex \u6839\u91CC\u3002 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n\n/* \u5355\u680F\uFF1Asticky + 100vh \u8BA9\u5B83\u5728\u9875\u9762\u6EDA\u52A8\u65F6\u4FDD\u6301\u53EF\u89C1\uFF0C\u540C\u65F6\u4ECD\u7136\u5360\u5BBD\u5EA6\u3002\n \u26A0\uFE0F **\u672C\u6761\u523B\u610F\u4E0D\u8BBE z-index**\uFF1A\u5E03\u5C40\u6210\u5458\u4E00\u65E6\u5E26\u6B63 z-index\uFF0C\u5C31\u4F1A\u65E0\u6761\u4EF6\u538B\u8FC7\u5BBF\u4E3B portal \u5230 body \u7684\n \u5F39\u7A97\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-05 \u771F\u673A\u4E8B\u6545\u300C\u4FA7\u8FB9\u680F\u76D6\u4F4F\u5BBF\u4E3B\u8BBE\u7F6E\u5F39\u7A97\u300D\uFF09\u3002\u5C42\u5E8F\u4EA4\u7ED9 DOM \u987A\u5E8F\u88C1\u51B3\u3002 */\n.dshpc-dock__panel{\n box-sizing:border-box;position:sticky;top:0;align-self:stretch;\n display:flex;flex-direction:column;flex:0 0 auto;\n /* \u9AD8\u5EA6\u9ED8\u8BA4\u89C6\u53E3\u9AD8\uFF08\u6574\u9875\u573A\u666F\uFF09\uFF1B\u5D4C\u5728\u5B9A\u9AD8\u5BB9\u5668\u91CC\u65F6\u7531\u8C03\u7528\u65B9\u7ED9 --dshpc-dock-h\uFF08\u5982 420px / 100%\uFF09\u3002 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);min-width:0;\n background:var(--dshpc-surface-base);color:var(--dshpc-fg);\n border-left:1px solid var(--dshpc-border);\n box-shadow:var(--dshpc-shadow-2);\n}\n\n.dshpc-dock__head{\n flex:none;display:flex;align-items:center;gap:8px;\n /* \u53F3\u4FA7 34px = 8(\u8FB9\u8DDD) + 20(\u5173\u94AE) + 6(\u547C\u5438)\uFF1A\u7ED9\u7EDD\u5BF9\u5B9A\u4F4D\u7684\u5173\u94AE\u7559\u4F4D\uFF0C\u6807\u9898/extra \u4E0D\u4ECE\u5B83\u5E95\u4E0B\u94BB */\n padding:10px 34px 10px 14px;\n border-bottom:1px solid var(--dshpc-border-faint);\n}\n/* \u56FE\u6807\u4F4D / \u6807\u9898\u53F3\u4FA7\u7684\u5185\u5BB9\u4F4D\uFF1A\u6D88\u8D39\u65B9\u4F20 ReactNode\uFF0C\u53EF\u585E\u591A\u4E2A\uFF1B\u5E93\u53EA\u8D1F\u8D23\u6392\u5E03\uFF0C\u4E0D\u62A2\u5BBD\u5EA6\u3002 */\n.dshpc-dock__lead{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-dock__extra{display:inline-flex;align-items:center;gap:6px;flex:none;margin-left:auto}\n/* \u81EA\u5B9A\u4E49\u5934\u90E8\uFF1A\u6574\u884C\u5F52\u8C03\u7528\u65B9 \u2014\u2014 \u4E0D\u52A0\u5185\u8FB9\u8DDD/\u8FB9\u6846/\u80CC\u666F\uFF0C\u4E5F\u4E0D\u7ED9\u5173\u94AE\u7559\u5185\u8054\u7A7A\u95F4\uFF08\u5173\u94AE\u662F\u7EDD\u5BF9\u5B9A\u4F4D\u7684\uFF09\u3002 */\n.dshpc-dock__head--custom{display:block;padding:0;border-bottom:none}\n.dshpc-dock__title{\n flex:1 1 auto;min-width:0;\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n font-size:var(--dshpc-font-md);font-weight:600;\n}\n/* \u5173\u95ED\u94AE\uFF1A20\u00D720 \u65B9\u89D2\u56FE\u6807\u4F4D\uFF08\u4E0E Modal \u7684\u5173\u95ED\u94AE\u540C\u89C4\u683C\uFF0C\u4E0D\u501F Picker \u89E6\u53D1\u5668\u76AE\u80A4\uFF09\u3002 */\n.dshpc-dock__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);\n font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-dock__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u5934\u90E8\u5173\u94AE\uFF1A\u7EDD\u5BF9\u5B9A\u4F4D\uFF0C\u4F4D\u7F6E\u4E0E\u5185\u7F6E\u5934\u5B8C\u5168\u4E00\u81F4\uFF08top 10 / right 8\uFF09\uFF1B\u81EA\u5B9A\u4E49\u5934\u4E5F\u7528\u8FD9\u4E00\u4E2A\u4F4D\u7F6E\u3002\n \u951A\u70B9\u662F\u9762\u677F\u672C\u8EAB\uFF08position:sticky \u5373\u5B9A\u4F4D\u4E0A\u4E0B\u6587\uFF09\uFF0C\u4E0D\u5728\u6EDA\u52A8\u5185\u5BB9\u91CC\uFF0C\u6240\u4EE5\u6B63\u6587\u6EDA\u52A8\u5B83\u4E0D\u8DDF\u6EDA\u3002 */\n.dshpc-dock__close--abs{position:absolute;top:10px;right:8px;z-index:8}\n/* \u6D6E\u52A8\u5173\u94AE\uFF1A\u65E0\u5934\u90E8\u9762\u677F\u7528\uFF0C\u7565\u6536\u4E00\u70B9\u8FB9\u8DDD\u3002 */\n.dshpc-dock__close--floating{\n position:absolute;top:6px;right:6px;z-index:8;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border-faint);\n}\n\n/* \u5185\u5BB9\u533A\u81EA\u5DF1\u6EDA\uFF1A\u9762\u677F\u9AD8\u5EA6\u9501 100vh\uFF0C\u5185\u5BB9\u4E0D\u8BBE\u5185\u90E8\u6EDA\u52A8\u5C31\u4F1A\u628A\u6574\u9875\u6491\u9AD8\u3002 */\n.dshpc-dock__body{flex:1 1 auto;min-height:0;overflow:auto}\n\n/* \u62D6\u62FD\u6761\uFF1A\u5DE6\u7F18 6px \u547D\u4E2D\u533A\uFF0C**\u4E0D\u753B\u7EBF**\uFF0Chover/\u6309\u4F4F\u65F6\u624D\u6D6E\u51FA\u4E00\u6761\u6D45\u8272\u5E26\u3002\n z-index 7 \u5FC5\u987B\u9AD8\u4E8E\u9762\u677F\u5185\u5BB9\u91CC\u7684\u6D6E\u5C42\uFF08\u590D\u5236\u94AE\u4E00\u7C7B\uFF09\uFF0C\u5426\u5219\u547D\u4E2D\u533A\u4F1A\u88AB\u5185\u5BB9\u76D6\u4F4F\u3002 */\n.dshpc-dock__resizer{\n position:absolute;left:0;top:0;bottom:0;width:6px;\n z-index:7;cursor:col-resize;background:transparent;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* hover/\u6309\u4F4F\uFF1A\u4E0D\u586B\u7070\u5E26\uFF0C\u6539\u4E3A\u5B98\u65B9 work \u533A\u6307\u793A\u6761\u6837\u5F0F \u2014\u2014 \u5DE6\u7F18 2px \u84DD\u7AD6\u6761\u3001\u4E0A\u4E0B\u6E10\u9690\n \uFF08\u989C\u8272\u8D70 business \u84DD\u7684\u5B98\u65B9 alias\uFF0C\u660E\u6697\u81EA\u52A8\u8DDF\u968F\u5BBF\u4E3B\uFF1B\u547D\u4E2D\u533A\u4ECD\u662F 6px \u4E0D\u53D8\uFF09\u3002 */\n.dshpc-dock__resizer:hover,.dshpc-dock__resizer:active{\n background:linear-gradient(180deg,transparent,var(--dshpc-business) 30%,var(--dshpc-business) 70%,transparent) left center / 1px 100% no-repeat;\n}\n\n/* \u62D6\u52A8\u671F\uFF1A\u2460 <iframe>\uFF08PDF / HTML \u9884\u89C8\uFF09\u662F\u72EC\u7ACB\u6587\u6863\uFF0C\u4F1A\u541E\u6389\u7236\u6587\u6863\u7684 pointermove\uFF0C\n \u5411\u53F3\u62D6\u8FDB iframe \u5C31\u5361\u6B7B \u2014\u2014 \u6574\u7247\u8BA9\u51FA\u6307\u9488\u4E8B\u4EF6\uFF1B\u2461 contain \u628A\u91CD\u6392\u9694\u79BB\u5728\u680F\u5185\uFF0C\n \u5426\u5219\u6BCF\u5E27\u6539\u5BBD\u5EA6\u90FD\u4F1A\u7275\u52A8\u6574\u9875\u91CD\u6392\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-04 \u771F\u673A\u300C\u632A\u5F88\u4E45\u624D\u52A8\u4E00\u4E0B\u300D\uFF09\u3002 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n";
|
|
2
|
+
//# sourceMappingURL=panel-dock-css.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,srNAA+kH,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// ⚠️ 生成物,勿手改。真源 = src/ui/panel-dock.css
|
|
2
|
+
// 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
|
|
3
|
+
export const PANEL_DOCK_CSS = "\n/* 停靠栏 = **布局成员**,不是浮层:它占宽度、把主区真正挤窄(兄弟项目 2026-09-28:\n 「分栏压过来,不是盖上去」)。所以调用方必须把它放进自己的 flex 根里。 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n\n/* 单栏:sticky + 100vh 让它在页面滚动时保持可见,同时仍然占宽度。\n ⚠️ **本条刻意不设 z-index**:布局成员一旦带正 z-index,就会无条件压过宿主 portal 到 body 的\n 弹窗(兄弟项目 2026-10-05 真机事故「侧边栏盖住宿主设置弹窗」)。层序交给 DOM 顺序裁决。 */\n.dshpc-dock__panel{\n box-sizing:border-box;position:sticky;top:0;align-self:stretch;\n display:flex;flex-direction:column;flex:0 0 auto;\n /* 高度默认视口高(整页场景);嵌在定高容器里时由调用方给 --dshpc-dock-h(如 420px / 100%)。 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);min-width:0;\n background:var(--dshpc-surface-base);color:var(--dshpc-fg);\n border-left:1px solid var(--dshpc-border);\n box-shadow:var(--dshpc-shadow-2);\n}\n\n.dshpc-dock__head{\n flex:none;display:flex;align-items:center;gap:8px;\n /* 右侧 34px = 8(边距) + 20(关钮) + 6(呼吸):给绝对定位的关钮留位,标题/extra 不从它底下钻 */\n padding:10px 34px 10px 14px;\n border-bottom:1px solid var(--dshpc-border-faint);\n}\n/* 图标位 / 标题右侧的内容位:消费方传 ReactNode,可塞多个;库只负责排布,不抢宽度。 */\n.dshpc-dock__lead{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-dock__extra{display:inline-flex;align-items:center;gap:6px;flex:none;margin-left:auto}\n/* 自定义头部:整行归调用方 —— 不加内边距/边框/背景,也不给关钮留内联空间(关钮是绝对定位的)。 */\n.dshpc-dock__head--custom{display:block;padding:0;border-bottom:none}\n.dshpc-dock__title{\n flex:1 1 auto;min-width:0;\n overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\n font-size:var(--dshpc-font-md);font-weight:600;\n}\n/* 关闭钮:20×20 方角图标位(与 Modal 的关闭钮同规格,不借 Picker 触发器皮肤)。 */\n.dshpc-dock__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);\n font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-dock__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 头部关钮:绝对定位,位置与内置头完全一致(top 10 / right 8);自定义头也用这一个位置。\n 锚点是面板本身(position:sticky 即定位上下文),不在滚动内容里,所以正文滚动它不跟滚。 */\n.dshpc-dock__close--abs{position:absolute;top:10px;right:8px;z-index:8}\n/* 浮动关钮:无头部面板用,略收一点边距。 */\n.dshpc-dock__close--floating{\n position:absolute;top:6px;right:6px;z-index:8;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border-faint);\n}\n\n/* 内容区自己滚:面板高度锁 100vh,内容不设内部滚动就会把整页撑高。 */\n.dshpc-dock__body{flex:1 1 auto;min-height:0;overflow:auto}\n\n/* 拖拽条:左缘 6px 命中区,**不画线**,hover/按住时才浮出一条浅色带。\n z-index 7 必须高于面板内容里的浮层(复制钮一类),否则命中区会被内容盖住。 */\n.dshpc-dock__resizer{\n position:absolute;left:0;top:0;bottom:0;width:6px;\n z-index:7;cursor:col-resize;background:transparent;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* hover/按住:不填灰带,改为官方 work 区指示条样式 —— 左缘 2px 蓝竖条、上下渐隐\n (颜色走 business 蓝的官方 alias,明暗自动跟随宿主;命中区仍是 6px 不变)。 */\n.dshpc-dock__resizer:hover,.dshpc-dock__resizer:active{\n background:linear-gradient(180deg,transparent,var(--dshpc-business) 30%,var(--dshpc-business) 70%,transparent) left center / 1px 100% no-repeat;\n}\n\n/* 拖动期:① <iframe>(PDF / HTML 预览)是独立文档,会吞掉父文档的 pointermove,\n 向右拖进 iframe 就卡死 —— 整片让出指针事件;② contain 把重排隔离在栏内,\n 否则每帧改宽度都会牵动整页重排(兄弟项目 2026-10-04 真机「挪很久才动一下」)。 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n";
|
|
4
|
+
//# sourceMappingURL=panel-dock-css.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-css.generated.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,4kHAA4kH,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-css.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,kDAAkD;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
|
|
3
|
+
*
|
|
4
|
+
* 只记两件事:**哪些面板开着**、**每栏多宽**。内容与头部不在这里——
|
|
5
|
+
* 那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
|
|
6
|
+
* 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
|
|
7
|
+
* **显隐归状态,结构归 children**。
|
|
8
|
+
*
|
|
9
|
+
* 口径(用户 2026-10-20 定案):
|
|
10
|
+
* · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
|
|
11
|
+
* · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
|
|
12
|
+
* · 关一栏即腾位,之后可以开新组名;
|
|
13
|
+
* · 没有多份同名、没有自动淘汰、没有 tab 切换。
|
|
14
|
+
*/
|
|
15
|
+
/** 默认窗口的保留名:`open()` 不传 id 时用它。 */
|
|
16
|
+
export declare const DEFAULT_PANEL_ID = "default";
|
|
17
|
+
export interface DockState {
|
|
18
|
+
/** 打开顺序即数组顺序(稳定,不随重开变化)。 */
|
|
19
|
+
ids: string[];
|
|
20
|
+
/** 每栏宽度(px);没有记录的栏由组件用它的 `width` 兜底。 */
|
|
21
|
+
widths: Record<string, number>;
|
|
22
|
+
}
|
|
23
|
+
export type OpenResult = {
|
|
24
|
+
ok: true;
|
|
25
|
+
id: string;
|
|
26
|
+
created: boolean;
|
|
27
|
+
} | {
|
|
28
|
+
ok: false;
|
|
29
|
+
id: string;
|
|
30
|
+
reason: 'limit';
|
|
31
|
+
};
|
|
32
|
+
export declare function emptyDock(): DockState;
|
|
33
|
+
/** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
|
|
34
|
+
export declare function clampWidth(value: number, min: number, max?: number): number;
|
|
35
|
+
export declare function isOpen(state: DockState, id: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
|
|
38
|
+
* 未开且已满 ⇒ 返回失败结果,状态不动。
|
|
39
|
+
*/
|
|
40
|
+
export declare function openPanel(state: DockState, id: string, maxPanels: number): {
|
|
41
|
+
state: DockState;
|
|
42
|
+
result: OpenResult;
|
|
43
|
+
};
|
|
44
|
+
/** 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。 */
|
|
45
|
+
export declare function closePanel(state: DockState, id: string): DockState;
|
|
46
|
+
/** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
|
|
47
|
+
export declare function setPanelWidth(state: DockState, id: string, width: number): DockState;
|
|
48
|
+
/** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
|
|
49
|
+
export declare function othersWidth(state: DockState, id: string, fallbackOf: (panelId: string) => number): number;
|
|
50
|
+
//# sourceMappingURL=panel-dock-logic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-logic.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAI1C;AAED,mCAAmC;AACnC,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAKlE;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAIpF;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAKzG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
|
|
3
|
+
*
|
|
4
|
+
* 只记两件事:**哪些面板开着**、**每栏多宽**。内容与头部不在这里——
|
|
5
|
+
* 那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
|
|
6
|
+
* 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
|
|
7
|
+
* **显隐归状态,结构归 children**。
|
|
8
|
+
*
|
|
9
|
+
* 口径(用户 2026-10-20 定案):
|
|
10
|
+
* · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
|
|
11
|
+
* · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
|
|
12
|
+
* · 关一栏即腾位,之后可以开新组名;
|
|
13
|
+
* · 没有多份同名、没有自动淘汰、没有 tab 切换。
|
|
14
|
+
*/
|
|
15
|
+
/** 默认窗口的保留名:`open()` 不传 id 时用它。 */
|
|
16
|
+
export const DEFAULT_PANEL_ID = 'default';
|
|
17
|
+
export function emptyDock() {
|
|
18
|
+
return { ids: [], widths: {} };
|
|
19
|
+
}
|
|
20
|
+
/** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
|
|
21
|
+
export function clampWidth(value, min, max) {
|
|
22
|
+
const wide = Number.isFinite(value) ? value : min;
|
|
23
|
+
const capped = max === undefined || !Number.isFinite(max) ? wide : Math.min(wide, max);
|
|
24
|
+
return Math.max(min, Math.round(capped));
|
|
25
|
+
}
|
|
26
|
+
export function isOpen(state, id) {
|
|
27
|
+
return state.ids.includes(id);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
|
|
31
|
+
* 未开且已满 ⇒ 返回失败结果,状态不动。
|
|
32
|
+
*/
|
|
33
|
+
export function openPanel(state, id, maxPanels) {
|
|
34
|
+
if (isOpen(state, id))
|
|
35
|
+
return { state, result: { ok: true, id, created: false } };
|
|
36
|
+
if (state.ids.length >= maxPanels)
|
|
37
|
+
return { state, result: { ok: false, id, reason: 'limit' } };
|
|
38
|
+
return { state: { ids: [...state.ids, id], widths: state.widths }, result: { ok: true, id, created: true } };
|
|
39
|
+
}
|
|
40
|
+
/** 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。 */
|
|
41
|
+
export function closePanel(state, id) {
|
|
42
|
+
if (!isOpen(state, id))
|
|
43
|
+
return state;
|
|
44
|
+
const widths = { ...state.widths };
|
|
45
|
+
delete widths[id];
|
|
46
|
+
return { ids: state.ids.filter((item) => item !== id), widths };
|
|
47
|
+
}
|
|
48
|
+
/** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
|
|
49
|
+
export function setPanelWidth(state, id, width) {
|
|
50
|
+
if (!isOpen(state, id))
|
|
51
|
+
return state;
|
|
52
|
+
if (state.widths[id] === width)
|
|
53
|
+
return state;
|
|
54
|
+
return { ids: state.ids, widths: { ...state.widths, [id]: width } };
|
|
55
|
+
}
|
|
56
|
+
/** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
|
|
57
|
+
export function othersWidth(state, id, fallbackOf) {
|
|
58
|
+
return state.ids.reduce((sum, item) => {
|
|
59
|
+
if (item === id)
|
|
60
|
+
return sum;
|
|
61
|
+
return sum + (state.widths[item] ?? fallbackOf(item));
|
|
62
|
+
}, 0);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=panel-dock-logic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-dock-logic.js","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/picker-css.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { PICKER_CSS } from './picker-css.generated.js';
|
|
2
2
|
//# sourceMappingURL=picker-css.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-css.d.ts","sourceRoot":"","sources":["../../src/ui/picker-css.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"picker-css.d.ts","sourceRoot":"","sources":["../../src/ui/picker-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* \u805A\u7126\uFF08\u952E\u76D8\u6216\u70B9\u51FB\u9009\u4E2D\uFF09\u65F6\u4E0E\u5168\u7AD9\u4E00\u81F4\u7684\u84DD\u8272\u63CF\u8FB9\uFF1B\u83DC\u5355\u6253\u5F00\u540E\u7126\u70B9\u4F1A\u8FDB\u53BB\uFF0C\u89E6\u53D1\u5668\u81EA\u7136\u5931\u53BB\u7126\u70B9\u3002 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u6587\u5B57\u9ED8\u8BA4\u9760\u5DE6\uFF08\u5403\u6389\u5269\u4F59\u5BBD\u5EA6\uFF09\uFF0C\u4E0D\u7ED9 space-between \u628A\u77ED\u6587\u6848\u63A8\u5230\u4E2D\u95F4\u7684\u673A\u4F1A\uFF1B\n \u786E\u5B9E\u8981\u5C45\u4E2D\u5C31\u663E\u5F0F\u4F20 align=\"center\"\u3002 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* \u83DC\u5355\u7ECF FloatingPortal \u6302\u5230 body\uFF0C\u8131\u79BB .dshpc-picker\uFF0C\u987B\u663E\u5F0F\u5B57\u53F7\uFF0C\u5426\u5219\u7EE7\u627F body \u7684\u5927\u5B57\u53F7 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* \u5C3A\u5BF8\u6863\uFF08\u4E0E Field \u7684 sm/md/lg \u5BF9\u5E94\uFF09\u3002 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* \u952E\u76D8\u6E38\u6807\u6240\u5728\u9879\uFF08\u65E0 hover \u4E5F\u8981\u770B\u5F97\u89C1\uFF09\u3002 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
|
|
2
|
+
//# sourceMappingURL=picker-css.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,ooHAAg/F,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
// ⚠️ 生成物,勿手改。真源 = src/ui/picker.css
|
|
2
|
+
// 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
|
|
3
|
+
export const PICKER_CSS = "\n.dshpc-picker{position:relative;display:inline-block;font-size:13px;line-height:20px}\n.dshpc-picker__trigger{\n display:inline-flex;align-items:center;justify-content:space-between;gap:6px;\n min-width:120px;max-width:100%;height:28px;padding:0 8px;\n color:var(--dshpc-fg);background:var(--dshpc-surface-1);\n border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;\n}\n.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}\n/* 聚焦(键盘或点击选中)时与全站一致的蓝色描边;菜单打开后焦点会进去,触发器自然失去焦点。 */\n.dshpc-picker__trigger:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 文字默认靠左(吃掉剩余宽度),不给 space-between 把短文案推到中间的机会;\n 确实要居中就显式传 align=\"center\"。 */\n.dshpc-picker__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}\n.dshpc-picker__trigger--center .dshpc-picker__label{text-align:center}\n.dshpc-picker__caret{flex:none;color:var(--dshpc-fg-3)}\n.dshpc-picker__icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__option-icon{display:inline-flex;flex:none;color:var(--dshpc-fg-2)}\n.dshpc-picker__menu{\n z-index:60;max-height:280px;overflow:auto;padding:4px;\n /* 菜单经 FloatingPortal 挂到 body,脱离 .dshpc-picker,须显式字号,否则继承 body 的大字号 */\n font-size:13px;line-height:20px;\n background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);\n border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);\n}\n/* 尺寸档(与 Field 的 sm/md/lg 对应)。 */\n.dshpc-picker__trigger--sm{height:24px;font-size:12px}\n.dshpc-picker__trigger--lg{height:32px}\n/* 键盘游标所在项(无 hover 也要看得见)。 */\n.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}\n.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}\n.dshpc-picker__search{\n width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;\n color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);\n border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;\n}\n.dshpc-picker__group-label{\n padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;\n}\n.dshpc-picker__option{\n display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;\n color:var(--dshpc-fg);white-space:nowrap;\n}\n.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}\n.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}\n.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}\n.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}\n.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}\n.dshpc-picker__degraded{\n padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);\n color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);\n font-size:11px;\n}\n.dshpc-picker__row{display:flex;align-items:center;gap:8px}\n";
|
|
4
|
+
//# sourceMappingURL=picker-css.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-css.generated.js","sourceRoot":"","sources":["../../src/ui/picker-css.generated.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,UAAU,GAAG,6+FAA6+F,CAAA"}
|
package/dist/ui/picker-css.js
CHANGED
|
@@ -1,51 +1,4 @@
|
|
|
1
1
|
// 选择器(Picker / ModelPicker)样式。
|
|
2
2
|
// 类名与 token 变量统一 dshpc 前缀。
|
|
3
|
-
export
|
|
4
|
-
.dshpc-picker{position:relative;display:inline-block;font-size:13px;line-height:20px}
|
|
5
|
-
.dshpc-picker__trigger{
|
|
6
|
-
display:inline-flex;align-items:center;justify-content:space-between;gap:6px;
|
|
7
|
-
min-width:120px;max-width:100%;height:28px;padding:0 8px;
|
|
8
|
-
color:var(--dshpc-fg);background:var(--dshpc-surface-1);
|
|
9
|
-
border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-md);cursor:pointer;
|
|
10
|
-
}
|
|
11
|
-
.dshpc-picker__trigger:disabled{color:var(--dshpc-fg-dim);cursor:not-allowed;opacity:.7}
|
|
12
|
-
.dshpc-picker__caret{color:var(--dshpc-fg-3);font-size:10px}
|
|
13
|
-
.dshpc-picker__menu{
|
|
14
|
-
position:absolute;z-index:60;top:calc(100% + 4px);left:0;min-width:100%;
|
|
15
|
-
max-height:280px;overflow:auto;padding:4px;
|
|
16
|
-
background:var(--dshpc-surface-menu);border:1px solid var(--dshpc-border);
|
|
17
|
-
border-radius:var(--dshpc-radius-md);box-shadow:0 8px 24px rgba(15,23,42,.12);
|
|
18
|
-
}
|
|
19
|
-
/* 向上展开(触发器靠近视口底部时用 placement="up")。 */
|
|
20
|
-
.dshpc-picker__menu--up{top:auto;bottom:calc(100% + 4px)}
|
|
21
|
-
/* 尺寸档(与 Field 的 sm/md/lg 对应)。 */
|
|
22
|
-
.dshpc-picker__trigger--sm{height:24px;font-size:12px}
|
|
23
|
-
.dshpc-picker__trigger--lg{height:32px}
|
|
24
|
-
/* 键盘游标所在项(无 hover 也要看得见)。 */
|
|
25
|
-
.dshpc-picker__option[data-active='true']{background:var(--dshpc-surface-sunken);outline:1px solid var(--dshpc-border)}
|
|
26
|
-
.dshpc-picker__option--clear{color:var(--dshpc-fg-3)}
|
|
27
|
-
.dshpc-picker__search{
|
|
28
|
-
width:100%;height:28px;margin-bottom:4px;padding:0 8px;box-sizing:border-box;
|
|
29
|
-
color:var(--dshpc-fg);background:var(--dshpc-surface-sunken);
|
|
30
|
-
border:1px solid var(--dshpc-border-faint);border-radius:var(--dshpc-radius-md);outline:none;
|
|
31
|
-
}
|
|
32
|
-
.dshpc-picker__group-label{
|
|
33
|
-
padding:6px 8px 2px;color:var(--dshpc-fg-3);font-size:11px;
|
|
34
|
-
}
|
|
35
|
-
.dshpc-picker__option{
|
|
36
|
-
display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--dshpc-radius-sm);cursor:pointer;
|
|
37
|
-
color:var(--dshpc-fg);white-space:nowrap;
|
|
38
|
-
}
|
|
39
|
-
.dshpc-picker__option:hover{background:var(--dshpc-surface-sunken)}
|
|
40
|
-
.dshpc-picker__option--active{background:var(--dshpc-open-bg);color:var(--dshpc-business)}
|
|
41
|
-
.dshpc-picker__option--disabled{color:var(--dshpc-fg-dim);cursor:not-allowed}
|
|
42
|
-
.dshpc-picker__tick{width:12px;color:var(--dshpc-business)}
|
|
43
|
-
.dshpc-picker__empty{padding:8px;color:var(--dshpc-fg-3);text-align:center}
|
|
44
|
-
.dshpc-picker__degraded{
|
|
45
|
-
padding:6px 8px;margin-bottom:4px;border-radius:var(--dshpc-radius-sm);
|
|
46
|
-
color:var(--dshpc-warning-label);background:color-mix(in srgb,var(--dshpc-warning) 12%,transparent);
|
|
47
|
-
font-size:11px;
|
|
48
|
-
}
|
|
49
|
-
.dshpc-picker__row{display:flex;align-items:center;gap:8px}
|
|
50
|
-
`;
|
|
3
|
+
export { PICKER_CSS } from './picker-css.generated.js';
|
|
51
4
|
//# sourceMappingURL=picker-css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-css.js","sourceRoot":"","sources":["../../src/ui/picker-css.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,2BAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"picker-css.js","sourceRoot":"","sources":["../../src/ui/picker-css.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 领域选择器的默认前置图标(2026-10-20 用户:默认就带一个 icon,可换、可去掉)。
|
|
3
|
+
*
|
|
4
|
+
* ui 零官方依赖 ⇒ 自绘小 SVG(14px,跟 currentColor 走明暗)。
|
|
5
|
+
* 用法:不传 `icon` ⇒ 默认这颗;传 `null` ⇒ 不显示;传任意 ReactNode ⇒ 换成它。
|
|
6
|
+
*/
|
|
7
|
+
import { createElement as h } from 'react';
|
|
8
|
+
/** 工作区:文件夹 */
|
|
9
|
+
export declare function folderIcon(): ReturnType<typeof h>;
|
|
10
|
+
/** 模型:四角星 */
|
|
11
|
+
export declare function sparkleIcon(): ReturnType<typeof h>;
|
|
12
|
+
//# sourceMappingURL=picker-icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-icons.d.ts","sourceRoot":"","sources":["../../src/ui/picker-icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAU1C,cAAc;AACd,wBAAgB,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAOjD;AAED,aAAa;AACb,wBAAgB,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAOlD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 领域选择器的默认前置图标(2026-10-20 用户:默认就带一个 icon,可换、可去掉)。
|
|
3
|
+
*
|
|
4
|
+
* ui 零官方依赖 ⇒ 自绘小 SVG(14px,跟 currentColor 走明暗)。
|
|
5
|
+
* 用法:不传 `icon` ⇒ 默认这颗;传 `null` ⇒ 不显示;传任意 ReactNode ⇒ 换成它。
|
|
6
|
+
*/
|
|
7
|
+
import { createElement as h } from 'react';
|
|
8
|
+
function glyph(path) {
|
|
9
|
+
return h('svg', { width: 14, height: 14, viewBox: '0 0 16 16', fill: 'none', 'aria-hidden': true }, path);
|
|
10
|
+
}
|
|
11
|
+
/** 工作区:文件夹 */
|
|
12
|
+
export function folderIcon() {
|
|
13
|
+
return glyph(h('path', {
|
|
14
|
+
d: 'M2 4.5A1.5 1.5 0 0 1 3.5 3h2.6l1.2 1.5h5.2A1.5 1.5 0 0 1 14 6v5.5A1.5 1.5 0 0 1 12.5 13h-9A1.5 1.5 0 0 1 2 11.5z',
|
|
15
|
+
stroke: 'currentColor',
|
|
16
|
+
'stroke-width': 1.3,
|
|
17
|
+
'stroke-linejoin': 'round',
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
/** 模型:四角星 */
|
|
21
|
+
export function sparkleIcon() {
|
|
22
|
+
return glyph(h('path', {
|
|
23
|
+
d: 'M8 1.8l1.6 4.1 4.1 1.6-4.1 1.6L8 13.2 6.4 9.1 2.3 7.5l4.1-1.6z',
|
|
24
|
+
stroke: 'currentColor',
|
|
25
|
+
'stroke-width': 1.2,
|
|
26
|
+
'stroke-linejoin': 'round',
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=picker-icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-icons.js","sourceRoot":"","sources":["../../src/ui/picker-icons.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,MAAM,OAAO,CAAA;AAE1C,SAAS,KAAK,CAAC,IAA0B;IACvC,OAAO,CAAC,CACN,KAAK,EACL,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,EAClF,IAAI,CACL,CAAA;AACH,CAAC;AAED,cAAc;AACd,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;QACrB,CAAC,EAAE,kHAAkH;QACrH,MAAM,EAAE,cAAc;QACtB,cAAc,EAAE,GAAG;QACnB,iBAAiB,EAAE,OAAO;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC;AAED,aAAa;AACb,MAAM,UAAU,WAAW;IACzB,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE;QACrB,CAAC,EAAE,gEAAgE;QACnE,MAAM,EAAE,cAAc;QACtB,cAAc,EAAE,GAAG;QACnB,iBAAiB,EAAE,OAAO;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
export interface PickerOption {
|
|
2
3
|
value: string;
|
|
3
4
|
label: string;
|
|
5
|
+
/** 选项文字前的图标(任意 ReactNode;不传就没有这一段)。 */
|
|
6
|
+
icon?: ReactNode;
|
|
4
7
|
disabled?: boolean;
|
|
5
8
|
}
|
|
6
9
|
/** 一组选项(模型选择里 group 就是 provider)。 */
|
|
@@ -17,6 +20,6 @@ export declare function filterGroups(groups: PickerGroup[], query: string): Pick
|
|
|
17
20
|
/** 多选切换;`max` 达到上限时不再添加(返回原数组,不静默截断)。 */
|
|
18
21
|
export declare function toggleValue(current: readonly string[], value: string, max?: number): string[];
|
|
19
22
|
export declare function labelsOf(groups: PickerGroup[], values: readonly string[]): string[];
|
|
20
|
-
/**
|
|
23
|
+
/** 值落在哪个组里(按模型值反推供应商等场景)。 */
|
|
21
24
|
export declare function groupOf(groups: PickerGroup[], value: string): PickerGroup | undefined;
|
|
22
25
|
//# sourceMappingURL=picker-logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-logic.d.ts","sourceRoot":"","sources":["../../src/ui/picker-logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"picker-logic.d.ts","sourceRoot":"","sources":["../../src/ui/picker-logic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB;AAED,8CAA8C;AAC9C,wBAAgB,QAAQ,CACtB,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EACjC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,GAClC,WAAW,EAAE,CAIf;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAIpE;AAED,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAShF;AAED,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAK7F;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAQnF;AAED,6BAA6B;AAC7B,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGrF"}
|
package/dist/ui/picker-logic.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// 选择器的纯逻辑(与 React 无关,便于单测)。
|
|
2
1
|
/** 两种输入归一成 groups:给了 `options` 就当成一个无标题的组。 */
|
|
3
2
|
export function toGroups(groups, options) {
|
|
4
3
|
if (groups !== undefined && groups.length > 0)
|
|
@@ -44,7 +43,7 @@ export function labelsOf(groups, values) {
|
|
|
44
43
|
}
|
|
45
44
|
return out;
|
|
46
45
|
}
|
|
47
|
-
/**
|
|
46
|
+
/** 值落在哪个组里(按模型值反推供应商等场景)。 */
|
|
48
47
|
export function groupOf(groups, value) {
|
|
49
48
|
if (value === '')
|
|
50
49
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"picker-logic.js","sourceRoot":"","sources":["../../src/ui/picker-logic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"picker-logic.js","sourceRoot":"","sources":["../../src/ui/picker-logic.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/resizer.d.ts
CHANGED
|
@@ -17,7 +17,9 @@ export interface ResizeOptions {
|
|
|
17
17
|
onMove: (width: number) => void;
|
|
18
18
|
/** 松手:提交最终宽度(落 state / 持久化)。 */
|
|
19
19
|
onCommit: (width: number) => void;
|
|
20
|
-
/**
|
|
20
|
+
/** 拖拽期间挂 `rootClass` 的元素;不传则回落 `#dshpc-root`(多实例场景必须传自己的根,否则会挂到别人的根上)。 */
|
|
21
|
+
root?: HTMLElement | null;
|
|
22
|
+
/** 拖拽期间挂到 `root` 的类(如预览 dock 的 `dshpc-resizing` 令 iframe pointer-events:none);松手移除。 */
|
|
21
23
|
rootClass?: string;
|
|
22
24
|
/** rAF 节流(预览 dock 用,避免每帧整页重排)。 */
|
|
23
25
|
rafThrottle?: boolean;
|
package/dist/ui/resizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizer.d.ts","sourceRoot":"","sources":["../../src/ui/resizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IAC5D,wEAAwE;IACxE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,yCAAyC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,
|
|
1
|
+
{"version":3,"file":"resizer.d.ts","sourceRoot":"","sources":["../../src/ui/resizer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IAC5D,wEAAwE;IACxE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,yCAAyC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAkChE"}
|
package/dist/ui/resizer.js
CHANGED
|
@@ -5,7 +5,7 @@ export function startResizeLayoutWidth(opts) {
|
|
|
5
5
|
const prevUserSelect = body.style.userSelect;
|
|
6
6
|
body.style.userSelect = 'none';
|
|
7
7
|
window.getSelection()?.removeAllRanges();
|
|
8
|
-
const rootEl = document.getElementById('dshpc-root');
|
|
8
|
+
const rootEl = opts.root ?? document.getElementById('dshpc-root');
|
|
9
9
|
if (opts.rootClass !== undefined)
|
|
10
10
|
rootEl?.classList.add(opts.rootClass);
|
|
11
11
|
let frame = 0;
|
package/dist/ui/resizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizer.js","sourceRoot":"","sources":["../../src/ui/resizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resizer.js","sourceRoot":"","sources":["../../src/ui/resizer.ts"],"names":[],"mappings":"AAwBA,4DAA4D;AAC5D,MAAM,UAAU,sBAAsB,CAAC,IAAmB;IACxD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;IAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAA;IAC9B,MAAM,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IACjE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvE,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,IAAI,GAAG,CAAC,OAAe,EAAU,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,KAAmB,EAAQ,EAAE;QAC3C,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAA;YACxB,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAM;YACvB,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,KAAmB,EAAQ,EAAE;QACzC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QAC7C,IAAI,KAAK,KAAK,CAAC;YAAE,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,CAAA;QACtC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAA;IACD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ToastAction, ToastPosition, ToastVariant } from './Toast.js';
|
|
2
|
+
/** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
|
|
3
|
+
export declare const TOAST_HOST_KEY: unique symbol;
|
|
4
|
+
/** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
|
|
5
|
+
export declare function claimToastHost<T>(create: () => T): T;
|
|
6
|
+
export interface ToastPayload {
|
|
7
|
+
message: string;
|
|
8
|
+
variant: ToastVariant;
|
|
9
|
+
/** native = showToast(sonner 原味);card = notify(我们的卡)。 */
|
|
10
|
+
style: 'native' | 'card';
|
|
11
|
+
description?: string;
|
|
12
|
+
durationMs: number;
|
|
13
|
+
/** showToast 的整条自定义色(仅 native 有意义)。 */
|
|
14
|
+
color?: string;
|
|
15
|
+
onDismiss?: () => void;
|
|
16
|
+
/** notify 的右侧按钮(仅 card,1–2 个)。 */
|
|
17
|
+
actions?: ToastAction[];
|
|
18
|
+
}
|
|
19
|
+
export interface ToastHost {
|
|
20
|
+
show(payload: ToastPayload): void;
|
|
21
|
+
/** 全局统一位置:任一副本调用对所有插件生效。 */
|
|
22
|
+
setPosition(position: ToastPosition): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=toast-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-host.d.ts","sourceRoot":"","sources":["../../src/ui/toast-host.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE1E,8CAA8C;AAC9C,eAAO,MAAM,cAAc,eAA2C,CAAA;AAEtE,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAOpD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,YAAY,CAAA;IACrB,yDAAyD;IACzD,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;CAC3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// 跨副本 toast 宿主(多插件同页只留一个提示区)。
|
|
2
|
+
//
|
|
3
|
+
// core 被打进每个插件的 bundle,模块级状态各副本一份 ⇒ 旧实现 N 个插件同页会挂出
|
|
4
|
+
// N 个同 id 容器 + N 个 Toaster 叠在同一屏位。这里在 globalThis 上用 Symbol.for 的
|
|
5
|
+
// 全局符号办一个单例:先到场的副本建宿主(唯一容器 + 唯一 Toaster),之后所有副本
|
|
6
|
+
// (含跨版本)都把 payload 交给已注册的宿主渲染。
|
|
7
|
+
// 纯逻辑、零 DOM / React 依赖 ⇒ Node 单测可直接断言单例语义。
|
|
8
|
+
/** 全局注册表键:Symbol.for 跨 bundle 副本天然共享同一个符号。 */
|
|
9
|
+
export const TOAST_HOST_KEY = Symbol.for('dsh-plugin-core/toast-host');
|
|
10
|
+
/** 全局单例:已注册则直接返回(不触发 create),否则建一个并注册。 */
|
|
11
|
+
export function claimToastHost(create) {
|
|
12
|
+
const g = globalThis;
|
|
13
|
+
const existing = g[TOAST_HOST_KEY];
|
|
14
|
+
if (existing !== undefined)
|
|
15
|
+
return existing;
|
|
16
|
+
const created = create();
|
|
17
|
+
g[TOAST_HOST_KEY] = created;
|
|
18
|
+
return created;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=toast-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-host.js","sourceRoot":"","sources":["../../src/ui/toast-host.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,mDAAmD;AACnD,iEAAiE;AACjE,gDAAgD;AAChD,+BAA+B;AAC/B,2CAA2C;AAI3C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAEtE,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAAI,MAAe;IAC/C,MAAM,CAAC,GAAG,UAA2C,CAAA;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAA;IAClC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAA;IAC3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAA;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/utils/date.d.ts
CHANGED
|
@@ -9,6 +9,14 @@ export declare function formatDateTime(iso: string, opts?: {
|
|
|
9
9
|
seconds?: boolean;
|
|
10
10
|
fallback?: string;
|
|
11
11
|
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* 按精度显示:day ⇒ `YYYY-MM-DD`;hour / minute ⇒ `YYYY-MM-DD HH:mm`;second ⇒ 补 `:ss`。
|
|
14
|
+
* 「数据补全到毫秒、显示只到精度」——不该显示的时分秒不出现(DateTimePicker 的显示口径)。
|
|
15
|
+
* 解析失败 ⇒ `opts.fallback`,缺省返回原串。
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatDateTimePrecision(iso: string, precision: 'day' | 'hour' | 'minute' | 'second', opts?: {
|
|
18
|
+
fallback?: string;
|
|
19
|
+
}): string;
|
|
12
20
|
/** `YYYY-MM-DD`(带年份,跨年也能看懂)。解析失败 ⇒ `opts.fallback`,缺省 `—`。 */
|
|
13
21
|
export declare function formatYmd(iso: string, opts?: {
|
|
14
22
|
fallback?: string;
|
package/dist/utils/date.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAE7C,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEnD;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMnG;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAK3E;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAOhG;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,uBAAuB;AACvB,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAIzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAetF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAexF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAahG;AAED,2CAA2C;AAC3C,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAGT"}
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAE7C,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEnD;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAMnG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAC/C,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,MAAM,CAQR;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAK3E;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAOhG;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,uBAAuB;AACvB,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAIzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAetF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAexF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAahG;AAED,2CAA2C;AAC3C,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAGT"}
|