dsh-plugin-core 0.2.14 → 0.3.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/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 +2 -0
- package/dist/ui/Segmented.d.ts.map +1 -1
- package/dist/ui/Segmented.js +3 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Segmented.d.ts","sourceRoot":"","sources":["../../src/ui/Segmented.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Segmented.d.ts","sourceRoot":"","sources":["../../src/ui/Segmented.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE9D,iBAAiB;AACjB,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACtD,kBAAkB;IAClB,KAAK,EAAE,CAAC,CAAA;IACR,YAAY;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,UAAU,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACpD,WAAW;IACX,KAAK,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAClC,2BAA2B;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,uBAAuB;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;IAC7B,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC5F,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,aAAa;IACb,KAAK,EAAE,CAAC,CAAA;IACR,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;CAC7B;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC3F,iBAAiB;IACjB,QAAQ,EAAE,IAAI,CAAA;IACd,eAAe;IACf,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;CAC/B;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;AAExG;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CA6C1F"}
|
package/dist/ui/Segmented.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* (真不够用才允许在调用点本地覆盖 `--dshpc-control-h-*`,属例外而非常态);
|
|
7
7
|
* - `variant`:`default`(纯黑面:轨道=第二层面 + 外描边)/ `inset`(灰底面:抄「版本」开关观感,
|
|
8
8
|
* 轨道=交互灰 hover 底、无外描边)—— 两套都保留、不合并;变体只改两个颜色变量,结构 / 尺寸 / 交互规则零重复。
|
|
9
|
+
* - `bordered`(默认 false):最外再包一圈 1px 描边,选中段相应变为描边块而非填充;
|
|
10
|
+
* 总高与无框版逐像素一致(border 由 padding 抵消),两种模式整行混排不跳高。
|
|
9
11
|
*
|
|
10
12
|
* 用法:
|
|
11
13
|
* // 单选
|
|
@@ -38,7 +40,7 @@ export function Segmented(props) {
|
|
|
38
40
|
'aria-label': props.label,
|
|
39
41
|
id: props.id,
|
|
40
42
|
// 结构一套、皮肤只在 controls-css 里;此处只拼「轴」类名,不写任何颜色 / 尺寸字面值。
|
|
41
|
-
className: `dshpc-seg dshpc-seg--${variant} dshpc-seg--${size}${props.block === true ? ' dshpc-seg--block' : ''}${props.className !== undefined ? ` ${props.className}` : ''}`,
|
|
43
|
+
className: `dshpc-seg dshpc-seg--${variant} dshpc-seg--${size}${props.block === true ? ' dshpc-seg--block' : ''}${props.bordered === true ? ' dshpc-seg--bordered' : ''}${props.className !== undefined ? ` ${props.className}` : ''}`,
|
|
42
44
|
style: props.style,
|
|
43
45
|
}, props.items.map(item => {
|
|
44
46
|
const on = multiple ? value.includes(item.value) : value === item.value;
|
package/dist/ui/Segmented.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Segmented.js","sourceRoot":"","sources":["../../src/ui/Segmented.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Segmented.js","sourceRoot":"","sources":["../../src/ui/Segmented.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/Textarea.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export interface TextareaProps {
|
|
|
28
28
|
className?: string;
|
|
29
29
|
/** 追加样式(只允许补布局)。 */
|
|
30
30
|
style?: CSSProperties;
|
|
31
|
+
/** 问号提示文字:给了就在输入框后面挂标准 FieldHint。 */
|
|
32
|
+
hint?: string;
|
|
31
33
|
}
|
|
32
34
|
/** 多行文本输入。 */
|
|
33
35
|
export declare function Textarea(props: TextareaProps): ReturnType<typeof h>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/ui/Textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/ui/Textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAI9D,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,KAAK,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,UAAU;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+BAA+B;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,cAAc;AACd,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAkBnE"}
|
package/dist/ui/Textarea.js
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { createElement as h } from 'react';
|
|
8
8
|
import { ensureControls } from './css.js';
|
|
9
|
+
import { FieldHint } from './FieldHint.js';
|
|
9
10
|
/** 多行文本输入。 */
|
|
10
11
|
export function Textarea(props) {
|
|
11
12
|
ensureControls();
|
|
12
13
|
const { value, onChange, placeholder, error, disabled, id, rows, spellCheck, className, style } = props;
|
|
13
|
-
|
|
14
|
+
const box = h('textarea', {
|
|
14
15
|
id,
|
|
15
16
|
rows,
|
|
16
17
|
value,
|
|
@@ -22,5 +23,9 @@ export function Textarea(props) {
|
|
|
22
23
|
style,
|
|
23
24
|
onChange: (event) => { onChange(event.target.value); },
|
|
24
25
|
});
|
|
26
|
+
// 多行的问号放**右下角**(2026-10-20 用户:不要垂直居中,那样像贴在中间的空白上)
|
|
27
|
+
if (props.hint === undefined)
|
|
28
|
+
return box;
|
|
29
|
+
return h('span', { className: 'dshpc-fieldwrap dshpc-fieldwrap--block' }, box, h(FieldHint, { text: props.hint }));
|
|
25
30
|
}
|
|
26
31
|
//# sourceMappingURL=Textarea.js.map
|
package/dist/ui/Textarea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/ui/Textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAsB,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/ui/Textarea.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAsB,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AA6B1C,cAAc;AACd,MAAM,UAAU,QAAQ,CAAC,KAAoB;IAC3C,cAAc,EAAE,CAAA;IAChB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvG,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE;QACxB,EAAE;QACF,IAAI;QACJ,KAAK;QACL,WAAW;QACX,QAAQ;QACR,UAAU,EAAE,UAAU,KAAK,IAAI;QAC/B,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;QACjC,SAAS,EAAE,iBAAiB,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACjJ,KAAK;QACL,QAAQ,EAAE,CAAC,KAAoC,EAAE,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;KAC5E,CAAC,CAAA;IACX,kDAAkD;IAClD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAA;IACxC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,wCAAwC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AACpH,CAAC"}
|
package/dist/ui/Toast.d.ts
CHANGED
|
@@ -1,12 +1,45 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ButtonVariant } from './Button.js';
|
|
2
|
+
export type ToastVariant = 'info' | 'success' | 'error' | 'warning';
|
|
3
|
+
export type ToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
4
|
+
export interface ToastOptions {
|
|
5
|
+
variant?: ToastVariant;
|
|
6
|
+
/** 停留时长(毫秒),默认 2600。 */
|
|
7
|
+
durationMs?: number;
|
|
8
|
+
/** 整条自定义颜色(背景色)。传了就走 unstyled 自定义卡,覆盖默认语义色。 */
|
|
9
|
+
color?: string;
|
|
10
|
+
/** toast 消失(自动或手动关闭)后触发。 */
|
|
11
|
+
onDismiss?: () => void;
|
|
12
|
+
/** 出现位置(作用于全局唯一 Toaster),默认 'bottom-center'。 */
|
|
13
|
+
position?: ToastPosition;
|
|
14
|
+
}
|
|
15
|
+
/** 封装好的提示:右侧动作按钮(用我们自己的 Button 样式)。 */
|
|
16
|
+
export interface ToastAction {
|
|
17
|
+
text: string;
|
|
18
|
+
/** 按钮样式(我们的 ButtonVariant),默认 'outline'。 */
|
|
19
|
+
variant?: ButtonVariant;
|
|
20
|
+
onClick: () => void;
|
|
21
|
+
}
|
|
22
|
+
export interface NotifyOptions {
|
|
23
|
+
variant?: ToastVariant;
|
|
24
|
+
/** 次要说明文字(标题下方)。 */
|
|
25
|
+
description?: string;
|
|
26
|
+
durationMs?: number;
|
|
27
|
+
position?: ToastPosition;
|
|
28
|
+
/** 右侧 1–2 个动作按钮;传了就走我们封装的卡片样式并渲染按钮。 */
|
|
29
|
+
actions?: ToastAction[];
|
|
30
|
+
}
|
|
2
31
|
/**
|
|
3
|
-
*
|
|
32
|
+
* 官方 Sonner 原生提示(**命令式**)。用于「官方的」对比 demo 与需要 Sonner 原味的场景。
|
|
33
|
+
* 变体:info(中性卡)/ success(绿)/ error(红)/ warning(黄,richColors)。
|
|
34
|
+
* 无 `document` 时静默跳过(Node 单测 / SSR 不炸)。
|
|
35
|
+
*/
|
|
36
|
+
export declare function showToast(message: string, opts?: ToastOptions): void;
|
|
37
|
+
/**
|
|
38
|
+
* 我们封装好的提示(**推荐项目内使用**):统一卡片样式(灰/绿/红/黄,跟随明暗皮肤),
|
|
39
|
+
* 右侧可挂 1–2 个**我们自己的 Button** 动作按钮,点击后自动关闭并调用你的事件。
|
|
4
40
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
41
|
+
* 底层仍是 Sonner(动画 / 定位 / 堆叠),但视觉与交互是我们定制的。
|
|
42
|
+
* 无 `document` 时静默跳过。
|
|
7
43
|
*/
|
|
8
|
-
export declare function
|
|
9
|
-
variant?: ToastVariant;
|
|
10
|
-
durationMs?: number;
|
|
11
|
-
}): void;
|
|
44
|
+
export declare function notify(message: string, opts?: NotifyOptions): void;
|
|
12
45
|
//# sourceMappingURL=Toast.d.ts.map
|
package/dist/ui/Toast.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/ui/Toast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../src/ui/Toast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,aAAa,CAAA;AAGxD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;AAEnE,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAA;AAElB,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,uCAAuC;IACvC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CACxB;AAiMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAapE;AAwBD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAalE"}
|
package/dist/ui/Toast.js
CHANGED
|
@@ -1,37 +1,225 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { createElement as h } from 'react';
|
|
2
|
+
import { createRoot } from 'react-dom/client';
|
|
3
|
+
import { Toaster, toast } from 'sonner';
|
|
4
|
+
import { Button } from './Button.js';
|
|
5
|
+
import { claimToastHost } from './toast-host.js';
|
|
3
6
|
const DEFAULT_MS = 2600;
|
|
7
|
+
const ROOT_ID = 'dshpc-toast-root';
|
|
8
|
+
// 宿主暗色判据是 body[data-ds-dark-theme](不是 prefers-color-scheme),
|
|
9
|
+
// Sonner 的 theme 必须显式传,故从这里读并监听变化。
|
|
10
|
+
function currentTheme() {
|
|
11
|
+
return document.body.hasAttribute('data-ds-dark-theme') ? 'dark' : 'light';
|
|
12
|
+
}
|
|
13
|
+
// ── 跨副本共享宿主 ──
|
|
14
|
+
// core 被打进每个插件 bundle,本模块的 root / position 等状态各副本一份;同页多插件
|
|
15
|
+
// 会各挂一个同 id 容器 + 一个 Toaster,叠在同一屏位。sonner 的 toast() / toast.custom()
|
|
16
|
+
// 是模块级 store(B 副本调自己 bundle 的 sonner,事件只进 B 的 store),所以只能共享
|
|
17
|
+
// 「命令式入口」、不能共享 React root:由先到场的副本建宿主,其余副本交给它渲染。
|
|
18
|
+
let sharedHost = null;
|
|
19
|
+
function toasterHost() {
|
|
20
|
+
if (sharedHost !== null)
|
|
21
|
+
return sharedHost;
|
|
22
|
+
if (typeof document === 'undefined' || typeof MutationObserver === 'undefined')
|
|
23
|
+
return null;
|
|
24
|
+
sharedHost = claimToastHost(createToasterHost);
|
|
25
|
+
return sharedHost;
|
|
26
|
+
}
|
|
27
|
+
function createToasterHost() {
|
|
28
|
+
let root = null;
|
|
29
|
+
let themeObserver = null;
|
|
30
|
+
let position = 'bottom-center';
|
|
31
|
+
function renderToaster() {
|
|
32
|
+
if (root === null)
|
|
33
|
+
return;
|
|
34
|
+
root.render(h(Toaster, {
|
|
35
|
+
theme: currentTheme(),
|
|
36
|
+
position,
|
|
37
|
+
// richColors:success=绿整条 / error=红整条 / warning=黄整条(Sonner 自带);
|
|
38
|
+
// 不开 closeButton:在宿主里吃不到 Sonner 的 CSS 变量,会渲染成白底方块叉(真机踩过)。
|
|
39
|
+
richColors: true,
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
// 全局唯一 Toaster:命令式 toast() 需要一个挂着的 Toaster 才能渲染。
|
|
43
|
+
function ensureToaster() {
|
|
44
|
+
if (root !== null)
|
|
45
|
+
return;
|
|
46
|
+
// 双闸:容器可能已被他人建过(重复 DOM id 会破坏 getElementById 语义)。
|
|
47
|
+
let container = document.getElementById(ROOT_ID);
|
|
48
|
+
if (container === null) {
|
|
49
|
+
container = document.createElement('div');
|
|
50
|
+
container.id = ROOT_ID;
|
|
51
|
+
document.body.appendChild(container);
|
|
52
|
+
}
|
|
53
|
+
root = createRoot(container);
|
|
54
|
+
renderToaster();
|
|
55
|
+
themeObserver = new MutationObserver(() => renderToaster());
|
|
56
|
+
themeObserver.observe(document.body, {
|
|
57
|
+
attributes: true,
|
|
58
|
+
attributeFilter: ['data-ds-dark-theme'],
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function showNative(payload) {
|
|
62
|
+
const duration = payload.durationMs;
|
|
63
|
+
const onDismiss = payload.onDismiss;
|
|
64
|
+
if (payload.color !== undefined) {
|
|
65
|
+
toast(payload.message, {
|
|
66
|
+
duration,
|
|
67
|
+
unstyled: true,
|
|
68
|
+
onDismiss,
|
|
69
|
+
className: 'dshpc-toast-custom',
|
|
70
|
+
style: {
|
|
71
|
+
background: payload.color,
|
|
72
|
+
color: '#fff',
|
|
73
|
+
minWidth: '320px',
|
|
74
|
+
minHeight: '48px',
|
|
75
|
+
padding: '12px 16px',
|
|
76
|
+
borderRadius: '8px',
|
|
77
|
+
boxShadow: '0 6px 16px rgba(0, 0, 0, 0.18)',
|
|
78
|
+
fontSize: '14px',
|
|
79
|
+
lineHeight: '20px',
|
|
80
|
+
boxSizing: 'border-box',
|
|
81
|
+
display: 'flex',
|
|
82
|
+
alignItems: 'center',
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const variant = payload.variant;
|
|
88
|
+
if (variant === 'success') {
|
|
89
|
+
toast.success(payload.message, { duration, onDismiss });
|
|
90
|
+
}
|
|
91
|
+
else if (variant === 'error') {
|
|
92
|
+
toast.error(payload.message, { duration, onDismiss });
|
|
93
|
+
}
|
|
94
|
+
else if (variant === 'warning') {
|
|
95
|
+
toast.warning(payload.message, { duration, onDismiss });
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
toast(payload.message, { duration, onDismiss });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function showCard(payload) {
|
|
102
|
+
const palette = notifyPalette(payload.variant, currentTheme());
|
|
103
|
+
const duration = payload.durationMs;
|
|
104
|
+
const actions = payload.actions;
|
|
105
|
+
const id = toast.custom(() => h('div', {
|
|
106
|
+
style: {
|
|
107
|
+
display: 'flex',
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
gap: '12px',
|
|
110
|
+
minWidth: '320px',
|
|
111
|
+
minHeight: '48px',
|
|
112
|
+
padding: '12px 16px',
|
|
113
|
+
borderRadius: '10px',
|
|
114
|
+
boxShadow: '0 6px 16px rgba(0, 0, 0, 0.18)',
|
|
115
|
+
background: palette.bg,
|
|
116
|
+
color: palette.fg,
|
|
117
|
+
boxSizing: 'border-box',
|
|
118
|
+
fontSize: '14px',
|
|
119
|
+
lineHeight: '20px',
|
|
120
|
+
},
|
|
121
|
+
}, h('span', {
|
|
122
|
+
style: {
|
|
123
|
+
flexShrink: 0,
|
|
124
|
+
width: '20px',
|
|
125
|
+
height: '20px',
|
|
126
|
+
borderRadius: '50%',
|
|
127
|
+
background: 'rgba(255, 255, 255, 0.25)',
|
|
128
|
+
display: 'inline-flex',
|
|
129
|
+
alignItems: 'center',
|
|
130
|
+
justifyContent: 'center',
|
|
131
|
+
fontSize: '13px',
|
|
132
|
+
fontWeight: 700,
|
|
133
|
+
},
|
|
134
|
+
}, palette.glyph), h('div', { style: { flex: 1, minWidth: 0 } }, h('div', { style: { fontWeight: 600 } }, payload.message), payload.description !== undefined
|
|
135
|
+
? h('div', { style: { opacity: 0.9, fontSize: '13px', marginTop: '2px' } }, payload.description)
|
|
136
|
+
: null), actions !== undefined && actions.length > 0
|
|
137
|
+
? h('div', { style: { display: 'flex', gap: '8px', flexShrink: 0 } }, ...actions.slice(0, 2).map((a) => h(Button, {
|
|
138
|
+
variant: a.variant ?? 'outline',
|
|
139
|
+
size: 'md',
|
|
140
|
+
onClick: () => {
|
|
141
|
+
a.onClick();
|
|
142
|
+
toast.dismiss(id);
|
|
143
|
+
},
|
|
144
|
+
}, a.text)))
|
|
145
|
+
: null), { duration, unstyled: true });
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
show(payload) {
|
|
149
|
+
ensureToaster();
|
|
150
|
+
renderToaster(); // 应用最新 position / theme(root 已存在时也要重渲染)
|
|
151
|
+
if (payload.style === 'card')
|
|
152
|
+
showCard(payload);
|
|
153
|
+
else
|
|
154
|
+
showNative(payload);
|
|
155
|
+
},
|
|
156
|
+
setPosition(next) {
|
|
157
|
+
position = next;
|
|
158
|
+
renderToaster();
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}
|
|
4
162
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* 直接操作一个固定容器最简单,且无 document 时静默跳过(SSR / 单测不炸)。
|
|
163
|
+
* 官方 Sonner 原生提示(**命令式**)。用于「官方的」对比 demo 与需要 Sonner 原味的场景。
|
|
164
|
+
* 变体:info(中性卡)/ success(绿)/ error(红)/ warning(黄,richColors)。
|
|
165
|
+
* 无 `document` 时静默跳过(Node 单测 / SSR 不炸)。
|
|
9
166
|
*/
|
|
10
167
|
export function showToast(message, opts) {
|
|
11
168
|
if (typeof document === 'undefined')
|
|
12
169
|
return;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
170
|
+
const host = toasterHost();
|
|
171
|
+
if (host === null)
|
|
172
|
+
return;
|
|
173
|
+
if (opts?.position !== undefined)
|
|
174
|
+
host.setPosition(opts.position);
|
|
175
|
+
host.show({
|
|
176
|
+
message,
|
|
177
|
+
variant: opts?.variant ?? 'info',
|
|
178
|
+
style: 'native',
|
|
179
|
+
durationMs: opts?.durationMs ?? DEFAULT_MS,
|
|
180
|
+
color: opts?.color,
|
|
181
|
+
onDismiss: opts?.onDismiss,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
// 我们封装卡片的配色:info 走灰(不是纯黑,随明暗切换);其余用整条语义色。
|
|
185
|
+
function notifyPalette(variant, theme) {
|
|
186
|
+
switch (variant) {
|
|
187
|
+
case 'success':
|
|
188
|
+
return { bg: '#16a34a', fg: '#ffffff', glyph: '✓' };
|
|
189
|
+
// error / warning 用哑光降饱和档:实心卡上加透明度会透出底层内容、伤可读性,
|
|
190
|
+
// 故改为压暗一档的色相(设计师口径:冷静的严重度,而非警报荧光)。
|
|
191
|
+
case 'error':
|
|
192
|
+
return { bg: '#c0392b', fg: '#ffffff', glyph: '✕' };
|
|
193
|
+
case 'warning':
|
|
194
|
+
return { bg: '#e0922f', fg: '#1f2937', glyph: '!' };
|
|
195
|
+
default:
|
|
196
|
+
return theme === 'dark'
|
|
197
|
+
? { bg: '#3f3f46', fg: '#fafafa', glyph: 'i' }
|
|
198
|
+
: { bg: '#f4f4f5', fg: '#18181b', glyph: 'i' };
|
|
199
|
+
}
|
|
26
200
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
201
|
+
/**
|
|
202
|
+
* 我们封装好的提示(**推荐项目内使用**):统一卡片样式(灰/绿/红/黄,跟随明暗皮肤),
|
|
203
|
+
* 右侧可挂 1–2 个**我们自己的 Button** 动作按钮,点击后自动关闭并调用你的事件。
|
|
204
|
+
*
|
|
205
|
+
* 底层仍是 Sonner(动画 / 定位 / 堆叠),但视觉与交互是我们定制的。
|
|
206
|
+
* 无 `document` 时静默跳过。
|
|
207
|
+
*/
|
|
208
|
+
export function notify(message, opts) {
|
|
209
|
+
if (typeof document === 'undefined')
|
|
210
|
+
return;
|
|
211
|
+
const host = toasterHost();
|
|
212
|
+
if (host === null)
|
|
213
|
+
return;
|
|
214
|
+
if (opts?.position !== undefined)
|
|
215
|
+
host.setPosition(opts.position);
|
|
216
|
+
host.show({
|
|
217
|
+
message,
|
|
218
|
+
variant: opts?.variant ?? 'info',
|
|
219
|
+
style: 'card',
|
|
220
|
+
description: opts?.description,
|
|
221
|
+
durationMs: opts?.durationMs ?? DEFAULT_MS,
|
|
222
|
+
actions: opts?.actions,
|
|
223
|
+
});
|
|
36
224
|
}
|
|
37
225
|
//# sourceMappingURL=Toast.js.map
|
package/dist/ui/Toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/ui/Toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../src/ui/Toast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,35 @@
|
|
|
1
|
-
import { createElement as h } from 'react';
|
|
1
|
+
import { createElement as h, type ReactNode } from 'react';
|
|
2
2
|
import { type PickerSize } from './Picker.js';
|
|
3
3
|
import { type Translate } from '../utils/i18n.js';
|
|
4
4
|
export interface WorkspacePickerProps {
|
|
5
|
-
/**
|
|
6
|
-
* 工作区名字列表 —— **由调用方给**。
|
|
7
|
-
*
|
|
8
|
-
* 为什么组件不自己取:工作区列表是 host 侧 `ctx.workspaceRegistry.list()` 取的,
|
|
9
|
-
* 要经插件自己的 HTTP 通道送到 client,那条通道是插件私有的(需求文档 §6)。
|
|
10
|
-
*/
|
|
11
|
-
workspaces: readonly string[];
|
|
12
5
|
value?: string | string[];
|
|
13
6
|
defaultValue?: string | string[];
|
|
14
7
|
mode?: 'single' | 'multiple';
|
|
15
8
|
max?: number;
|
|
16
9
|
onChange?: (value: string | string[]) => void;
|
|
10
|
+
/**
|
|
11
|
+
* 是否提供「所有工作区」默认项(**默认提供**;只在单选形态下出现):
|
|
12
|
+
* 选中即发 `''` —— 表示不筛,是否当「全部」由消费方自己处理。
|
|
13
|
+
*/
|
|
14
|
+
allowDefault?: boolean;
|
|
15
|
+
/** 「所有工作区」的文案(默认取内置字典)。 */
|
|
16
|
+
defaultLabel?: string;
|
|
17
17
|
/** 允许「不选」。 */
|
|
18
18
|
clearable?: boolean;
|
|
19
|
+
/** 下拉内搜索框(默认关;要就传 true)。 */
|
|
19
20
|
searchable?: boolean;
|
|
20
21
|
disabled?: boolean;
|
|
21
22
|
size?: PickerSize;
|
|
22
23
|
placement?: 'down' | 'up';
|
|
23
24
|
className?: string;
|
|
25
|
+
/** 未选时的文字(默认「工作区」;想叫「选择工作区」就传它)。 */
|
|
24
26
|
placeholder?: string;
|
|
27
|
+
/** 触发器前置图标:不传 = 默认文件夹;传 `null` = 不显示;传元素 = 自定义。 */
|
|
28
|
+
icon?: ReactNode | null;
|
|
29
|
+
/** 问号提示文字(传了才显示)。 */
|
|
30
|
+
hint?: string;
|
|
25
31
|
translate?: Translate;
|
|
26
32
|
}
|
|
27
|
-
/** 选工作区(交互全管:单选 / 多选 / 上限 /
|
|
33
|
+
/** 选工作区(交互全管:单选 / 多选 / 上限 / 空态;数据自动来自宿主工作区快照)。 */
|
|
28
34
|
export declare function WorkspacePicker(props: WorkspacePickerProps): ReturnType<typeof h>;
|
|
29
|
-
export interface FilePickerProps {
|
|
30
|
-
/** 候选文件(相对路径);同样由调用方给。 */
|
|
31
|
-
files: readonly string[];
|
|
32
|
-
value?: string | string[];
|
|
33
|
-
defaultValue?: string | string[];
|
|
34
|
-
mode?: 'single' | 'multiple';
|
|
35
|
-
max?: number;
|
|
36
|
-
onChange?: (value: string | string[]) => void;
|
|
37
|
-
clearable?: boolean;
|
|
38
|
-
searchable?: boolean;
|
|
39
|
-
disabled?: boolean;
|
|
40
|
-
size?: PickerSize;
|
|
41
|
-
placement?: 'down' | 'up';
|
|
42
|
-
className?: string;
|
|
43
|
-
placeholder?: string;
|
|
44
|
-
translate?: Translate;
|
|
45
|
-
}
|
|
46
|
-
/** 选文件(同上:交互全管,数据调用方给)。 */
|
|
47
|
-
export declare function FilePicker(props: FilePickerProps): ReturnType<typeof h>;
|
|
48
35
|
//# sourceMappingURL=WorkspacePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspacePicker.d.ts","sourceRoot":"","sources":["../../src/ui/WorkspacePicker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkspacePicker.d.ts","sourceRoot":"","sources":["../../src/ui/WorkspacePicker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAwB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhF,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAChC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAA;IAC7C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CA2BjF"}
|
|
@@ -1,23 +1,34 @@
|
|
|
1
|
-
// 领域选择器:WorkspacePicker
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
|
|
1
|
+
// 领域选择器:WorkspacePicker(选工作区)。
|
|
2
|
+
// 通用交互由 ui 的 Picker 承担;工作区数据由本组件自己订(host-data.ts 的
|
|
3
|
+
// workspaceList,connectHost 喂官方 `workspaces` 服务快照)—— 消费方不再传数组
|
|
4
|
+
// (用户 2026-10-20 拍板)。FilePicker 已删(用户同日:文件选择框没有用)。
|
|
5
|
+
import { createElement as h, useSyncExternalStore } from 'react';
|
|
5
6
|
import { ensureControls } from './css.js';
|
|
6
7
|
import { Picker } from './Picker.js';
|
|
7
8
|
import { t } from '../utils/i18n.js';
|
|
8
|
-
|
|
9
|
+
import { workspaceList } from './host-data.js';
|
|
10
|
+
import { folderIcon } from './picker-icons.js';
|
|
11
|
+
/** 选工作区(交互全管:单选 / 多选 / 上限 / 空态;数据自动来自宿主工作区快照)。 */
|
|
9
12
|
export function WorkspacePicker(props) {
|
|
10
13
|
ensureControls();
|
|
11
14
|
const tt = props.translate ?? t;
|
|
15
|
+
const items = useSyncExternalStore(workspaceList.subscribe, workspaceList.getSnapshot);
|
|
16
|
+
const options = items.map((w) => ({ value: w.workspaceId, label: w.title }));
|
|
17
|
+
// 「所有工作区」放最上面(单选才有意义);选中发 '' —— 空串表示不筛
|
|
18
|
+
const allOption = props.allowDefault !== false && props.mode !== 'multiple'
|
|
19
|
+
? { value: '', label: props.defaultLabel ?? tt('workspaceAll') }
|
|
20
|
+
: undefined;
|
|
12
21
|
return h(Picker, {
|
|
13
|
-
options:
|
|
22
|
+
options: allOption === undefined ? options : [allOption, ...options],
|
|
14
23
|
value: props.value,
|
|
15
24
|
defaultValue: props.defaultValue,
|
|
16
25
|
mode: props.mode,
|
|
17
26
|
max: props.max,
|
|
18
27
|
onChange: props.onChange,
|
|
19
28
|
clearable: props.clearable,
|
|
20
|
-
searchable: props.searchable
|
|
29
|
+
searchable: props.searchable,
|
|
30
|
+
hint: props.hint,
|
|
31
|
+
icon: props.icon === undefined ? folderIcon() : props.icon ?? undefined,
|
|
21
32
|
placeholder: props.placeholder ?? tt('explorerRoot'),
|
|
22
33
|
disabled: props.disabled,
|
|
23
34
|
size: props.size,
|
|
@@ -25,24 +36,4 @@ export function WorkspacePicker(props) {
|
|
|
25
36
|
className: props.className,
|
|
26
37
|
});
|
|
27
38
|
}
|
|
28
|
-
/** 选文件(同上:交互全管,数据调用方给)。 */
|
|
29
|
-
export function FilePicker(props) {
|
|
30
|
-
ensureControls();
|
|
31
|
-
const tt = props.translate ?? t;
|
|
32
|
-
return h(Picker, {
|
|
33
|
-
options: props.files.map((f) => ({ value: f, label: f })),
|
|
34
|
-
value: props.value,
|
|
35
|
-
defaultValue: props.defaultValue,
|
|
36
|
-
mode: props.mode,
|
|
37
|
-
max: props.max,
|
|
38
|
-
onChange: props.onChange,
|
|
39
|
-
clearable: props.clearable,
|
|
40
|
-
searchable: props.searchable ?? true,
|
|
41
|
-
placeholder: props.placeholder ?? tt('pickerPlaceholder'),
|
|
42
|
-
disabled: props.disabled,
|
|
43
|
-
size: props.size,
|
|
44
|
-
placement: props.placement,
|
|
45
|
-
className: props.className,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
39
|
//# sourceMappingURL=WorkspacePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspacePicker.js","sourceRoot":"","sources":["../../src/ui/WorkspacePicker.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"WorkspacePicker.js","sourceRoot":"","sources":["../../src/ui/WorkspacePicker.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,mDAAmD;AACnD,8DAA8D;AAC9D,mDAAmD;AACnD,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAA;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,MAAM,EAAmB,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,CAAC,EAAkB,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAgC9C,kDAAkD;AAClD,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,cAAc,EAAE,CAAA;IAChB,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;IAC/B,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IACtF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC5E,uCAAuC;IACvC,MAAM,SAAS,GACb,KAAK,CAAC,YAAY,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QACvD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE;QAChE,CAAC,CAAC,SAAS,CAAA;IACf,OAAO,CAAC,CAAC,MAAM,EAAE;QACf,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC;QACpE,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS;QACvE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,cAAc,CAAC;QACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/ui/card-css.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { CARD_CSS } from './card-css.generated.js';
|
|
2
2
|
//# sourceMappingURL=card-css.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card-css.d.ts","sourceRoot":"","sources":["../../src/ui/card-css.ts"],"names":[],"mappings":"AAGA,
|
|
1
|
+
{"version":3,"file":"card-css.d.ts","sourceRoot":"","sources":["../../src/ui/card-css.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const CARD_CSS = "\n.dshpc-card{\n position:relative;box-sizing:border-box;color:var(--dshpc-fg);font:inherit;text-align:left;\n --card-accent:var(--dshpc-business);\n --card-accent-soft:var(--dshpc-business-soft);\n}\n/* \u6863\u4F4D \u2192 token\uFF08\u7167 records-timeline \u7684 tone \u6A21\u5F0F\uFF1A\u4E00\u4E2A\u53D8\u91CF\u5207\u6863\uFF0C\u4E0D\u5199 5 \u5957\u89C4\u5219\uFF1B\u6D45\u5E95\u4E0E\u8272\u6761\u540C\u6E90\uFF09\u3002 */\n.dshpc-card--success{--card-accent:var(--dshpc-success);--card-accent-soft:var(--dshpc-success-soft)}\n.dshpc-card--warning{--card-accent:var(--dshpc-warning);--card-accent-soft:var(--dshpc-warning-soft)}\n.dshpc-card--danger{--card-accent:var(--dshpc-danger);--card-accent-soft:var(--dshpc-danger-soft)}\n/* neutral \u6D45\u5E95\u501F chip \u5E95\uFF08\u5144\u5F1F\u9879\u76EE mute \u6863\u540C\u6B3E\uFF1A\u660E\u6697\u90FD\u6210\u7ACB\uFF09\u3002 */\n.dshpc-card--neutral{--card-accent:var(--dshpc-fg-4);--card-accent-soft:var(--dshpc-chip-bg)}\n\n/* \u5934\u90E8\u4E00\u884C = \u8272\u6761 + \u4E3B\u5185\u5BB9 + \u53F3\u4FA7\u69FD\uFF0C**\u6574\u4F53\u5782\u76F4\u5C45\u4E2D**\uFF1A\u8C03\u7528\u65B9\u5728 action \u91CC\u88F8\u653E\u4E00\u4E2A\u5143\u7D20\n \uFF08\u6309\u94AE / \u6587\u5B57 / \u56FE\u6807\uFF09\u4E0D\u7528\u81EA\u5DF1\u5957\u5BB9\u5668\u5C45\u4E2D\uFF1B\u4E00\u884C\u4E24\u884C\u3001\u53F3\u8FB9\u600E\u4E48\u653E\u7531\u8C03\u7528\u65B9\u5728\u6846\u5185\u81EA\u5B9A\u3002 */\n.dshpc-card__head{display:flex;align-items:center;gap:8px;min-width:0}\n.dshpc-card__main{flex:1;min-width:0}\n.dshpc-card__side{display:flex;align-items:center;gap:6px;flex:none}\n\n/* \u2500\u2500 \u5916\u89C2\u4E00 \u00B7 StripCard\uFF1A\u540C\u8272\u7CFB\u6D45\u5E95 + 1px \u4E0D\u53EF\u89C1\u5360\u4F4D\u8FB9\u6846 + \u65B9\u89D2 + 4px \u901A\u9AD8\u65B9\u89D2\u8272\u6761\u8D34\u5DE6\u7F18 \u2500\u2500 */\n.dshpc-card--strip{\n padding:12px 12px 12px 20px;border:1px solid transparent;\n background:var(--card-accent-soft,transparent);\n}\n/* \u5DE6\u5185\u8FB9\u8DDD 20px = 16 \u7559\u767D + 4 \u6761\u5BBD \u21D2 \u5185\u5BB9\u4ECE\u8272\u6761\u53F3\u7F18\u8D77\u7B97\uFF1B\u8272\u6761\u7EDD\u5BF9\u5B9A\u4F4D\u901A\u9AD8\uFF0C\u8DDF\u7740\u5185\u5BB9\u9AD8\u5EA6\u81EA\u9002\u5E94\u3002 */\n.dshpc-card--strip .dshpc-card__bar{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--card-accent)}\n\n/* \u2500\u2500 \u5916\u89C2\u4E8C \u00B7 Card\uFF1Asurface \u5E95 + 1px \u5B9E\u8272\u8FB9\u6846 + \u5706\u89D2 + \u884C\u5185\u5706\u89D2\u77ED\u6761 \u2500\u2500 */\n.dshpc-card--bordered{\n /* \u5DE6\u5185\u8FB9\u8DDD 12\uFF08\u6BD4\u4E0A/\u53F3/\u4E0B 14 \u5C11 2\uFF09\uFF1A\u7AD6\u6761\u8D34\u8FD1\u8FB9\u6846\uFF1B\u5934\u90E8\u5185\u7F29 2px \u21D2 \u4E3B\u5185\u5BB9\u8DDF\u7740\u5DE6\u79FB 2px\uFF0C\n \u7AD6\u6761\u2194\u5185\u5BB9\u7684 12px \u95F4\u8DDD\u4E0D\u53D8\u2014\u2014\u6BD4\u300C\u6761\u5B50 left:-2 \u800C\u5185\u5BB9\u4E0D\u52A8\u300D\u66F4\u6B63\u89C4\uFF08\u4E0D\u9760\u76F8\u5BF9\u5B9A\u4F4D\u786C\u8865\uFF09\u3002 */\n padding:14px 14px 14px 12px;border:1px solid var(--dshpc-border);border-radius:var(--dshpc-radius-sm);\n background:var(--dshpc-surface-1);\n}\n.dshpc-card--bordered .dshpc-card__head{gap:12px}\n/* \u77ED\u6761\uFF1A\u884C\u5185 flex \u9879\uFF0C**\u9AD8\u5EA6\u8DDF\u7740\u5185\u5BB9\u8D70**\uFF08stretch\uFF09\uFF0C\u6700\u5C0F\u4E00\u884C\u6587\u5B57\uFF08--dshpc-line-md\uFF09\u2014\u2014\n \u4E00\u884C\u6587\u5B57\u65F6\u6761\u5B50\u4E0E\u6587\u5B57\u9F50\u9AD8\uFF0C\u4E0D\u4F1A\u628A\u5361\u6491\u9AD8\uFF1B\u7AD6\u6761\u8DDD\u5DE6 12\uFF08= \u5DE6\u5185\u8FB9\u8DDD\uFF09\uFF0C\u8DDD\u4E0A/\u53F3/\u4E0B 14\u3002 */\n.dshpc-card--bordered .dshpc-card__bar{width:6px;flex:none;align-self:stretch;min-height:var(--dshpc-line-md);border-radius:var(--dshpc-radius-xs);background:var(--card-accent)}\n.dshpc-card__toggle{\n display:inline-flex;align-items:center;justify-content:center;\n width:24px;height:24px;padding:0;background:none;border:none;border-radius:6px;\n color:var(--dshpc-fg-3);cursor:pointer;\n}\n.dshpc-card__toggle:hover{background:var(--dshpc-surface-sunken);color:var(--dshpc-fg)}\n.dshpc-card__caret{display:inline-block;font-size:10px;transition:transform .15s ease}\n.dshpc-card__caret.is-open{transform:rotate(180deg)}\n.dshpc-card__panel{margin-top:8px;padding-top:8px;border-top:1px solid var(--dshpc-border-faint)}\n";
|
|
2
|
+
//# sourceMappingURL=card-css.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/card-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,wxIAAqmF,CAAA"}
|